以下声明之间有什么区别:
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/