这是正确的吗?
int (*(*ptr)())[];
我知道这是微不足道的,但我正在查看有关此类构造的旧测试,而这种特定组合并未在测试中,这真的让我发疯;我只需要确定一下。这些声明是否有明确且可靠的可理解规则? (即:指向...数组的指针...指向...函数的指针......等等) 谢谢!
R
最佳答案
The right-left rule 让它变得简单。
int (*(*ptr)())[];
可以理解为
从变量名开始 ------------------------------ ptr
除了)
什么都不对所以向左走找到*
-------------- 是一个指针
跳出括号,遇到()
---------- 一个不带参数的函数(在 C 未指定参数数量的情况下)
向左走,找到*
---------------------------------------------- 并返回一个指针
跳出括号,向右点击[]
---------- 到一个数组
再次向左走,找到int
---------------------------------- ints
.
关于c++ - 在 C/C++ 中,如何声明指向返回指向 int 值数组指针的函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3411438/