int(*p)() 和 int *p()区别
*int (*p)()是一个变量说明,说明p是一个指向函数入口的指针变量,该函数的返回值是整型量,(*p)的两边的括号不能少。
具体用法:
可以定义一个 int func()的函数;可把函数func()赋给p作为p的值,即把func()的入口地址赋给p,以后就可以用p来调用该函数,实际上p和func都指向同一个入口地址,不同就是p是一个指针变量,不像函数名称那样是死的,它可以指向任何函数。在程序中把哪个函数的地址赋给它,它就指向哪个函数。
int p()则不是变量说明而是函数说明,说明p是一个指针型函数,其返回值是一个指向整型量的指针,*p两边没有括号。作为函数说明,在括号内最好写入形式参数,这样便于与变量说明区别。
char *p;
p前面有两个号,相当于(p)。
显然p是指针变量的定义形式,如果没有最前面的,那就是定义了一个指向字符数据的指针变量。现在它前面又有一个*号,表示指针变量p是指向一个字符指针型变量的。*p就是p所指向的另一个指针