C 指向数组/指针数组的指针消歧

标签 c arrays pointers variable-declaration

以下声明之间有什么区别:

int* arr1[8];
int (*arr2)[8];
int *(arr3[8]);

理解更复杂的声明的一般规则是什么?

最佳答案

int* arr[8]; // An array of int pointers.
int (*arr)[8]; // A pointer to an array of integers

第三个与第一个相同。

一般规则是operator precedence 。当函数指针出现时,它会变得更加复杂。

关于C 指向数组/指针数组的指针消歧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25857415/

相关文章:

c - 为什么要在宏中使用 'do {} while(0)'?

计算哈希表中字符串的个数

c - 关于用c解密图像文件的许多疑问

c - C 中的链表数组

c# - 将数组转换为类型数组

c语言移动指针后如何释放它

c - 将单词读入结构数组的函数

javascript - 更新 Javascript 数组,以便我可以将它传递给 PHP

c++ - 我可以依赖 initializer_list::const_iterator 作为普通指针吗?

计算 c 中的问题(visual studio)