如何解释复杂的声明,例如:
int * (* (*fp1) (int) ) [10]; ---> declaration 1
int *( *( *[5])())(); --------> declaration 2
理解上述声明有什么规则需要遵循吗?
这是一篇关于如何阅读 C 中的复杂声明的精彩文章:http://www.codeproject.com/KB/cpp/complex_declarations.aspx http://www.codeproject.com/KB/cpp/complex_declarations.aspx
这对我帮助很大!
特别是 - 您应该阅读“正确的规则”部分。这里引用:
int * (* (*fp1) (int) ) [10];
这可以解释如下:
- 从变量名开始 -------------------------------------- fp1
- 右边什么都没有,但 ) 所以向左查找 * -------------- 是一个指针
- 跳出括号并遇到 (int) --------- 到 a
以 int 作为参数的函数
- 向左走,找到*----------------------------------------并返回一个指针
- 跳出括号,向右点击 [10] -------- 到一个数组
10
- 向左查找 * ------------------------------------------ 指向的指针
- 再向左走,找到int -------------------------------- ints。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)