我遇到了一个非常复杂的声明,我无法理解:
char ( * ( * f[3]) ()) [5] ;
Run Code Online (Sandbox Code Playgroud)
我想知道如何确定宣布的内容.
另外,由于这个问题是在接受采访时向我询问的,我想知道这些代码是否实际用于软件行业?
如果没有,那么问的目的是什么?
Aka*_*tra 10
简单地将声明分成几部分.
最内部的大括号:(*f [3])表示'f'是一个由3个元素组成的数组,它们是指针.
( *f )()意味着'f'是指向函数的指针,因此
( * f[3] ) () f表示一个3个指向函数的数组.
( * ( * f[3] ) ()) 表示f是一个返回指针的3个指针数组.
因此,
char ( * ( * f[3] ) ()) [5] ;
Run Code Online (Sandbox Code Playgroud)
表示f是一个3个指向函数的数组,返回一个指向5个字符数组的指针
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |