需要 cdecl 说明:什么是 "array 5?"

cdecl clarification required: what is an "array 5?"

转到这里:http://cdecl.org/

输入:

char (*arr)[5]

输出:

declare arr as pointer to array 5 of char

什么是 "array 5"?这是否仅仅意味着一个包含 5 个元素的数组?

它是一个指向 5 个元素的数组的指针。

//Standard array
char array[5];

//pointer to array
char (*arr)[5];

//Assign pointer of array to arr
arr = &array;

//Dereference arr and use it.
(*arr)[1] = 4;

数组的指针和引用对于将数组传递给函数以及 returning 它们很有用。不要 return 本地非静态数组,因为它们的生命周期结束于 return。

要引用数组,您可以使用以下声明: char (&arr)[5] = array;