大家看看X是什么类型变量。
x是什么类型变量,最好能解释的详细点,我不知道该怎么说。谢谢。。。
char (*(*x[3])())[5]
[解决办法]
x和[3]结合说明是一个大小为3的数组,该数组指向了一个指针,该指针指向一个函数,该函数的无参数,返回一个指针,该指针指向一个大小为5的char型数组
char num[5];char (*x00())[5]{ return #}int _tmain(int argc, _TCHAR* argv[]){ char (*x000)[5]; //返回值 char (*(x00)())[5];//函数原型,参数为空,返回值为指针 char (*(*x0)())[5];//数组的元素,是个函数指针 char (*(*x[3])())[5];//是个数组,大小为3 x0 = x00; x[0] = x0; cout<<typeid(x).name()<<endl; system("pause"); return 0;}
[解决办法]
分析C语言声明,关键是搞清楚这个变量是个什么东西(函数、指针、数组),是函数那么剩下的就是他的参数和返回值,是指针那剩下部分是说明他指向什么,是数组剩下的部分就是说明数组的成员是什么类型。
解析C语言声明规则:从左侧第一个标识符开始,按照优先级进行结合。*表示是..的指针,const表示只读的,volatile表示可变的,[]表示是数组,()表示是函数。
这个在C专家编程里有。
[解决办法]
typedef char c5[5];
typedef c5* (*ft)();
ft x[3];