您可能已经阅读过K&R 的 The C Programming Language一书中的同名部分“复杂声明” 。我只是在读这本书,并试图用 C 语言提高自己。在阅读了提到的部分之后,我想我无法理解 C 声明语句的语法背后的逻辑。1、2、3 和 4 来自第 5 节,第 6 节来自其他页面。
int (*daytab)[13]
daytab:指向 int 数组 [13] 的指针void (*comp)()
comp:指向返回 void 的函数的指针char (*(*x())[])()
x:函数返回指向数组[]的指针,指向函数返回char的指针char (*(*x[3])())[5]
x:指向函数的指针的数组 [3] 返回指向 char 的数组 [5] 的指针typedef int (*PFI)(char *, char *)
创建类型 PFI,用于“指向函数(两个 char * 参数)返回 int 的指针。语法在这里如何工作?
最后,我的问题是:
- 你能通过上面的例子来解释你思考和阅读复杂声明的方式吗?
- 1、3、4 之类的东西是否实际可用和需要?如果是这样,你能写一些代码示例吗?