Мне не понять
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;
В случае char *name1
, name1
— это указатель на char
, т.е. строка, которая и выводится.
А в первом случае char *name[]
, name
— это массив указателей на строки. Поэтому выводится адрес этого массива.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
В проекте (многоагентная система для работы с потоком разнотиповых данных в реальном времени) используется многопоточность из стандартной...
Программа должна считывать массив из файла и искать в нём минимальный элемент, но что-то не получается нормально считать сам массивВ чем...