2016-07-06 40 views
0

去这里:http://cdecl.org/cdecl澄清要求:什么是“阵列5?”

输入:

char (*arr)[5] 

输出:

声明改编为字符指针

什么是 “排列5” 的阵列5?这是否仅仅意味着一个包含5个元素的数组?

+0

是的,它的作用。什么让你感到不舒服?数组可以衰变为指针的事实? –

+1

@ jnbrq-CanberkSönmez数组可隐式转换为指向第一个元素的指针,但此“衰减”不是指向数组的指针。 OP有什么是一个实际的指针 –

+0

没有不适,只需要澄清 –

回答

1

它是一个指向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; 

指针和对数组的引用是用于使阵列的功能,以及返回它们是有用的。不要返回本地非静态数组,因为它们的生命周期在返回时结束。

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

+0

显然,我无法接受你的回答10分钟。要给其他人一个机会。 –