一旦知道C和C++ 语法如何工作,就能创建许多复杂的条目
//: C03:ComplicatedDefinitions.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt /* 1. */ void * (*(*fp1)(int))[10]; //fp1是指向函数的指针, 函数接受整形参数并返回一个10个void指针数组的指针 /* 2. */ float (*(*fp2)(int,int,float))(int); //fp2是指向函数的指针,接受3个参数 int int float, 且返回一个指向函数的指针 //接受一个整形返回一个 float /* 3. */ typedef double (*(*(*fp3)())[10])(); fp3 a; //创建许多复杂的定义,可以使用tyepdef //显示每次typedef如何缩短复杂定义的 //fp3 是一个指向函数的指针 函数无参数 //返回一个指向含有10个指向函数指针数组的指针,不接受参数,返回double值 //a是 fp3类型中的一个 //typedef 用简单描述构建复杂描述 /* 4. */ int (*(*f4())[10])(); //不是变量定义,而是函数定义 //f4是一个返回指针的函数,该指针指向一个含义10个函数指针的数组 返回整形值 int main() {} ///:~我们很少使用复杂的声明和定义
如果搞清楚,不会被可能遇到的稍微复杂的情况所困惑
无输出