2011-05-06 5 views
5

나는 예를 들어`const char * yes [5]`는이 코드에서 무엇을 나타 냅니까?

C++에서 타입 정의에 대한 질문이 있습니다 :

typedef const char* yes[5]; 

형식 정의가 CONST의 char *의 대체 이름을 제공 하는가, 그래서 CONST의 char *의 대체 이름이 yes[5]입니까? yes[5]는 무엇을 나타냅니다? 두 개의 yes 배열을 만들고 두 배열 중 하나를 초기화하는 방법은 무엇입니까?

답변

7

아니요, 그러면 yes은 상수 문자 데이터에 대한 5 개의 포인터 배열의 새 이름이됩니다.

typedef이 표현식처럼 보이고 선언의 이름이 대신 선언되는 유형 인 새 유형의 이름으로 간주되는 식으로 생각하면됩니다.

따라서 typedef int x;int의 새 이름이됩니다. 배열과 함께 변경되지 않습니다.

+2

실제로 구문은 const char에 대한 5 개의 포인터 배열입니다. const char *는 char const *와 같습니다. * –

+0

예, Dan F에 동의합니다. const char에 5 개의 포인터가 포함되어야합니다. char –

+0

@ Dan F : 사실, 제 생각에는 사실입니다. 고침, 고마워. – unwind

9

아니요. 이것은 의 배열 인 yes 유형을 선언합니다.

this link을 참조하고 텍스트 영역 내에 const char *yes[5];을 입력하십시오.

관련 문제