Что `const char * yes [5]` представляет в этой строке кода? - PullRequest
5 голосов
/ 06 мая 2011

У меня есть вопрос о typedef в c ++

, например:

typedef const char* yes[5];

Дает ли typedef альтернативное имя const char *, поэтому альтернативное имя const char * равно yes[5]?что означает yes[5] здесь?а как создать два массива yes и инициализировать один из двух?

Ответы [ 2 ]

9 голосов
/ 06 мая 2011

Нет.Здесь объявляется тип yes, представляющий собой массив из пяти const char * .

См. эту ссылку и тип const char *yes[5]; внутри текстовой области.

7 голосов
/ 06 мая 2011

Нет, это делает yes новым именем для массива из 5 указателей на постоянные символьные данные.

Способ думать об этом - выражение после typedef выглядит как объявление, а вместо этого имя в объявлении считается именем для нового типа, который является объявленным типом.

То есть typedef int x; делает x новым именем для int. Это не меняется с массивами.

...