Чар буквальные различия? - PullRequest
0 голосов
/ 16 октября 2018

Я прошел некоторые курсы STL c ++ 11 и помешан на спецификациях, касающихся букв-символов.

Учитывая следующие символы-литералы, я смог идентифицировать их следующим образом:

'a'   // unsigned char
L'a'  // wchar_t
"a"   // ??? char ?
L"a"  // ??? long wchar_t ?

Двойные кавычки - это путаница.Поскольку мои уроки еще не охватили строки, ответ, который ожидается здесь, является формой char.

Какой тип представляют "a" и L"a"?

1 Ответ

0 голосов
/ 16 октября 2018

Ваши уроки могут еще не охватывать строки, но, тем не менее, значения с двойными кавычками являются строковыми литералами (первый узкий, второй широкий);их типы соответственно const char[2] и const wchar_t[2].

Кстати, многие люди часто говорят, что они const char * и const wchar_t *, но это неверно - поскольку во всех массивах они легко затухают до указателя на ихпервый элемент, но это действительно массивы, как вы можете проверить, например, sizeof.

...