int (*p)(); p为指向函数的指针,该函数返回一个整型值
从字面上的理解,我们知道 int (*p)()是个指针变量的数据类型,可别在其后面直接去加上{},会报错的。
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
int a[]={1,2,3,4};
int * s=a;
int (*p(int data)){
printf("函数指针,data:%d\n",data);
return s;
};
int *ab1(){return NULL;}
int (*ab2()){printf("this is ab2\n");return a;};
int (*ab0)()=NULL;
int main()
{
printf("a[0]=%d\n",*p(10));
printf("ab0:%d\n",ab0);
printf("ab1:%d\n",ab1);
ab2();
return 0;
}
运行结果如下:
问题出来了:int (*ab0)()到底是个什么数据类型的变量?