高级声明:
(1) int *f,g;
这个只声明了一个f指针。*是都是紧跟在其后的。
(2) int *f();
f是一个函数,它的返回值是一个指向整型的指针。
(3) int (*f)();
f是一个函数指针,这个函数的返回值是一个int类型。
(4) int *(*f)();
f是一个函数指针,这个函数的返回值是一个int*类型
(5) int f[];
f是一个整型数组,数组的长度暂时省略
(6) int *f[]
f是一个数组,数组的元素是指向整型的指针
(7) int f()[]---这个声明时非法的
这里f是一个函数,他的返回值是一个整型数组,但这个声明是非法
的,因为函数不能返回数组,只能返回标量。
(8) int f[]()---这个声明是非法的
这里f是一个数组,数组里是返回值为int的函数,这个声明是非法的
因为各个函数的不不具有相同的大小,而数组的元素需要相同的大小。
(9) int (*f[])();
这里f是一个数组,而数组的元素是函数的指针,而这些函数的返回值是
Int型
(10) int *(*f[])();
这里f是一个数组,而数组的元素是函数指针,而这些函数的返回值是int*型
前面都是旧式的风格
下面是新风格
int (*f)(int,float);
这里将f声明为一个函数指针,它的参数为int和float,返回值为int型
int *(*g[])(int,float);
这里将g声明为一个数组,数组的元素为函数指针,而函数的参数是int和float
返回值是int*的指针。
时间: 2024-11-11 03:27:48