int ( * ( *x ) [10]) (); //解释
- C/C++ code
int ( * ( *f ) () )[10]; int ( * ( *x ) [10]) ();
//f为一个函数指针,函数返回值为一个指向整型数组的指针。
//x为一个数组指针,数组元素为指向返回值为整型的函数的指针。
//这样的理解正确吗?
#PointersOnC
[解决办法]
f是个函数指针,指向一个返回指针的函数,这个函数返回的指针指向一个int类型的数组.
x是个指向数组的指针,这个数组是个由指针组成的数组,数组里的每个指针指向一个返回类型为int的函数
-------------
年轻人
[解决办法]
[解决办法]
int ( * ( *f ) () )[10];
f f
* f is pointer
( )() f is pointer to function
* f is pointer to function return pointer
( )[10] f is pointer to function return pointer to array..10 of
int f is pointer to function return pointer to array..10 of int
结果: f 是一个函数指针,该函数返回一个指针,该指针指向一个整形数组
int ( * ( *x ) [10]) ();
x x
* x is pointer
( ) [10] x is pointer to array of
* x is pointer to array of pointer
( ) (); x is pointer to array of pointer to function return
int x is pointer to array of pointer to function return int
结果: x是一个数组的指针,该数组是一个函数指针数组,函数返回整形。
[解决办法]
从这里开始:
(*x)[10]表示 x是数组指针
(*x) ==> B
B[10] ==> A
int (* A)() ==> A 是参数为void返回值为int的函数指针
即 B[10] 是参数为void返回值为int的函数指针
而 B 又是一个有10个元素的数组
数组元素是什么不是很明确的嘛