相关疑难解决方法(0)

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

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

int* arr1[8];
int (*arr2)[8];
int *(arr3[8]);
Run Code Online (Sandbox Code Playgroud)

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

c arrays pointers variable-declaration

451
推荐指数
6
解决办法
38万
查看次数

定义char a [5]和char(*a)[5]之间有什么区别?

我只是想确保C语言中*a [5]和(*a)[5]之间的区别.

我知道*a [5]意味着数组a可以有五个元素,每个元素都是指针.所以,

char *p = "ptr1";
char *p2 = "ptr2";
char *a[5] = { p , p2 };
Run Code Online (Sandbox Code Playgroud)

它确实有意义.

但是,当我改变*a[5](*a)[5]这是行不通的.

char (*a)[5] = { p , p2};
Run Code Online (Sandbox Code Playgroud)

究竟(*a)[5]是什么意思?


此外,

有什么区别*a[5]a[5][],和(*a)[5]a[][5]

c arrays pointers

5
推荐指数
4
解决办法
2164
查看次数

标签 统计

arrays ×2

c ×2

pointers ×2

variable-declaration ×1