int(*p)()

2024-11-30 13:40:07
推荐回答(3个)
回答1:

楼主你好。首先学习指针是有好多概念容易混淆。下面我来帮你区别一下:
1、int(*p)[4];------ptr为指向含4个元素的一维整形数组的指针变量(是指针)
2、int *p[4];-------定义指针数组p,它由4个指向整型数据的指针元素组成(是数组)
3、int(*)[4];--------实际上可以看作是一种数据类型。也就是第一个(int(*p)[4];)中定义的p的数据类型
其实你要看这种到底是什么,就是要看他最先和谁结合。 比如1中p先与*结合,那就说明p本质是一个指针;而2中p先与后面的[4]结合,说明他本质是一个数组。再慢慢理解。希望能帮到你。如有疑问可以再问我。

回答2:

p是指向函数的指针变量,这题选C。
具体用法:
你可以定义一个 int func()的函数;可把函数func()赋给p作为p的值,即把func()的入口地址赋给p,以后就可以用p来调用该函数,实际上p和func都指向同一个入口地址,不同就是p是一个指针变量,不像函数名称那样是死的,它可以指向任何函数,就看你想怎么做了。在程序中把哪个函数的地址赋给它,它就指向哪个函数。

回答3:

c