2016-07-06 5 views
0

Перейти здесь: http://cdecl.org/Требуется уточнение cdecl: что такое «массив 5?»

Вход:

char (*arr)[5] 

Выход:

DECLARE обр как указатель на массив 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 минут. Должен также дать другим людям шанс. –