我需要理解为什么我们可以在没有*的情况下调用C中的函数指针,就像我们调用一个常规函数一样(这可能会使读者混淆程序,因为他可能会搜索具有此名称的函数,而不会找到它)
#include <stdio.h>
int sum(int , int);
int main(void){
int a, b, total;
int (*ptr_sum)(int x, int y)=sum;
printf("Enter a:");
scanf("%d", &a);
printf("Enter b:");
scanf("%d", &b);
total=(*ptr_sum)(a, b); //************line 1
total=ptr_sum(a, b); //************line 2
printf("The total = %d\n", total);
return(0);
}
int sum(int m, int n) {
return m+n;
}
在第1行,我们使用*
运算符调用了函数指针。在第2行,我们再次调用它但没有*
,就像它是一个常规函数一样。
为什么呢?为什么两者都一样?