2016-07-06 4 views
0

는 여기로 이동 : http://cdecl.org/cdecl 설명 필요 : "배열 5"란 무엇입니까?

입력 :

char (*arr)[5] 

출력 :

에 "어레이 (5)은"이란 문자

의 어레이 (5)에 대한 포인터로

선언 편곡? 이것은 단순히 5 개의 요소가있는 배열을 의미합니까?

+0

:

는이 선언을 사용할 수있는 배열을 참조하십시오. 너를 불편하게 만드는 것은 무엇인가? 배열이 포인터로 붕괴 될 수 있다는 사실? –

+1

@ jnbrq-CanberkSönmez 배열은 암시 적으로 첫 번째 요소를 가리키는 포인터로 캐스트 할 수 있지만이 'decay'는 배열에 대한 포인터가 아닙니다. 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 분 더 답변을 수락 할 수 없습니다. 다른 사람들에게도 기회를 주어야합니다. –