我们通过一个例题来了解函数指针
int Add(int x, int y) {
int z = x + y;
return z;
}
int main() {
int a = 10;
int b = 20;
int sum = Add(a, b);
printf("%d", sum);
return 0;
}
这个我们的一个Add函数,我们函数也是有地址的,而且以下两种方法均能打印出函数的地址 ,我们的函数名就是地址!
printf("%p",Add);
printf("%p",&Add);
那我们把函数的地址怎么存起来呢?我们知道存放地址的叫指针,那么存放函数地址的叫函数指针,那么我们函数指针怎么来写?
int (*pa)(int,int)=Add;
pa==Add;pa就是一个函数的地址,
printf("%p",Add);
printf("%p",pa);
打印输出结果一样
解析:
应用:利用函数指针来调用函数
int Add(int x, int y) {
int z = x + y;
return z;
}
int main() {
int a = 10;
int b = 20;
int(*pa)(int, int) = Add;
printf("%d\n",pa(2,3));
printf("%d\n", (*pa)(4, 6));
printf("%d\n", Add(2, 3));
return 0;
}
这三种方法都是一样的概念,调用Add函数,把参数传入Add函数中,然后进行打印输出。
我们来看两个例题:
这则表达式表达的意思是什么???
解析:
代码二: