C语言_18函数指针与函数指针数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言_18函数指针与函数指针数组相关的知识,希望对你有一定的参考价值。

1.指向函数的指针

(1).定义函数指针

指针 (*p)
指向函数 (*p)(char *)
函数的返回值为int
int (*p)(char *)
//返回值类型 (*指针变量名)(指针变量指向的参数类型);
int (*p)(char *);
int (*p)(int,int);
//指向print函数
//函数在表达式中将转换为该函数的指针

(2).使用函数指针

#include<stdio.h>
int main()

int (*p)(char *) = printf;
int n = (*p)("helloworld");
printf("%c", n);
return 0;

运行结果:

【C语言_18】函数指针与函数指针数组_函数指针

#include<stdio.h>
int Max(int, int);//函数声明
int main()

int (*p)(int, int);//定义函数指针
int a, b, c;
p = Max;//把函数Max赋给指针变量p,使p指向Max函数
printf("Enter a and b:\\n");
scanf("%d %d", &a, &b);
c = (*p)(a, b);//通过函数指针调用Max函数
printf("Max=%d", c);
return 0;

int Max(int x, int y)

int d;
if (x> y)
d = x;
else
d = y;
return d;

【C语言_18】函数指针与函数指针数组_函数指针_02

2.函数指针数组

(1).定义函数指针数组

//返回值类型 (*函数指针数组名)[元素个数](函数指针指向的函数类型);
int (*parr)[10](int,int);
//返回值类型 (*函数指针数组名[元素个数])(函数指针指向的函数类型);
int (*parr[10])(int,int);

(2).使用函数指针数组

#include<stdio.h>
void add();
void sub();
void mul();
void div();
int main()

void (*parr[4])()=add,sub,mul,div;
for(int i=0;i<4;i++)
(*parr[i])();

return 0;

void add()

printf("+++++\\n");

void sub()

printf("-----\\n");

void mul()

printf("*****\\n");

void div()

printf("/////\\n");

运行结果:

【C语言_18】函数指针与函数指针数组_函数指针_03


持续更新【C语言】系列!有需要的可以移步主页​​秃头程序员主页​

以上是关于C语言_18函数指针与函数指针数组的主要内容,如果未能解决你的问题,请参考以下文章

C语言总结_数组与函数传参练习题

C语言总结_数组与函数传参练习题

C 语言二级指针作为输入 ( 指针数组 | 指针数组排序 | 字符串排序 | strcmp 函数 )

C语言错题集3:二级指针函数指针数组指针

如何在C中将函数指针数组的函数指针作为函数参数传递?

C语言中函数指针*p **p 和数组不是很明白,可以解释下麽?