Страницы

Поиск по вопросам

понедельник, 8 апреля 2019 г.

Указатель на тип char, нюансы

Мне не понять
char *name[] = { "la la","la" }; cout << name << endl; // этот выдаёт адрес первого элемента
char *name1 = "la la"; cout << name1 << endl; // а этот самого "la la"
Почему первый вариант выдаёт адрес, а не полный строковый литерал "la la"? Ведь cout перегружен, так что вместо адреса выдаёт полное значение пока не встретит \0


Ответ

Потому что на самом деле name — это указатель на массив, а не указатель на char. Хотите вывести первый элемент массива — пишите
cout << name[0] << endl;

Комментариев нет:

Отправить комментарий