看不懂的变量,求教。。。

来源:百度知道 编辑:UC知道 时间:2024/05/11 05:46:29
int (*a)(int b,int c)这个变量怎么理解呀,求高手帮帮忙。。。
还有如果int *d;
int e=d;那e是地址值还是变量值呢?
谢谢。。。

int (*a)(int b,int c)是一个承载函数地址的指针

你可以这样试试就知道了。
int p(int b,int c) { return b+c; }
int (*a)(int b,int c) = &p;

然后你用int (*a)(int b,int c)去调用。例如(*a)(3,4);结果和p(3,4)是一样的。

其实,你可以这样想象,无论是p还是a他们都是一个容器,其中包含的就是函数的入口地址。我们机器调用函数,就是调用他的地址,然后执行。

还有
int *d;
int e=d;
是无法编译成功的,因为你的d是一个指向int的指针,而e是int变量。

关于指针,我想应该是C中最难理解的部分了,当然也是C的精华部分,的确值得深究,至少我是这么认为的。^_^

的确值得深究,楼上回答的够详细.