c++ - 在 C/C++ 中,如何声明指向返回指向 int 值数组指针的函数的指针?

标签 c++ c arrays function-pointers declaration

这是正确的吗?

int (*(*ptr)())[];

我知道这是微不足道的,但我正在查看有关此类构造的旧测试,而这种特定组合并未在测试中,这真的让我发疯;我只需要确定一下。这些声明是否有明确且可靠的可理解规则? (即:指向...数组的指针...指向...函数的指针......等等) 谢谢!

R

最佳答案

The right-left rule 让它变得简单。

int (*(*ptr)())[];可以理解为

从变量名开始 ------------------------------ ptr

除了) 什么都不对所以向左走找到* -------------- 是一个指针

跳出括号,遇到() ---------- 一个不带参数的函数(在 C 未指定参数数量的情况下)

向左走,找到* ---------------------------------------------- 并返回一个指针

跳出括号,向右点击[] ---------- 到一个数组

再次向左走,找到int ---------------------------------- ints .

关于c++ - 在 C/C++ 中,如何声明指向返回指向 int 值数组指针的函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3411438/

相关文章:

c++ - 更新功能中的跳跃 Action 播放声音(openframework)

c - ncurses 菜单 - 不会显示我的用户输入的字符串

c - 防止死锁

c - 多维数组: Ignoring spaces in the input

c++ - 不支持 VARIADIC 的宏自动注入(inject)参数

iphone - 使用适用于 iOS 的 ExtAudioFileWrite 将音频样本缓冲区写入 aac 文件

c++ - 需要有关使用 for 循环显示我的数组的帮助

C、用指针将字符串按空格分割成字符串

c - 如何在同一行上打印所有数组元素?

c++ - 如何将二维数组相互分配?