c - 在 C 中,此声明 : int *(*table())[30]; 的含义是什么

标签 c

int *(*table())[30];

我无法在任何地方找到解决方案。 *table()是什么,可以是函数还是数组?

你能告诉我这是什么意思吗?

最佳答案

你可以从里到外解码它:

int *(*table())[30];

最里面的绑定(bind)是table(),它是一个没有指定参数的函数。下一级是 *table(),因此 table 返回指向某物的指针。下一层是 (*table())[30],因此它返回一个指向 30 长数组的指针。下一级是 *(table())[30],因此它返回一个指向 30 长度指针数组的指针,指向某物。最后一级添加类型说明符 int *(*table())[30]

所以 table 是一个函数(带有未指定的参数),它返回一个指向 30 长数组的指针,指向 int

关于c - 在 C 中,此声明 : int *(*table())[30]; 的含义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155089/

相关文章:

c - 将字符串拆分为标记

c - fprintf 不工作

c++ - C 编程中 printf() 的返回类型

c - 如何制作函数的多个副本并在 C 中异步调用它

c - C 二进制文件的表示

c - RN42 蓝牙模块 - 从 C 代码进入命令模式

c - 当输入大于 10 时,While 循环会产生致命的运行时错误

c++ - 自动跟踪程序执行

c - stat 给出没有这样的文件或目录

C - 使用 FFTW、fftw_plan_dft_1d 进行卷积