Почему тип char разыменовывается без знака разыменовывания?
const char* a="ffggd";
cout <<a<< endl;
Почему выводится строка полностью? Вообще как это работает? 'а' же возвращает указатель
P.s И еще такой вопрос,почему в первом случае без const нельзя а во втором можно?
const char *f = "аав";
char f[4] = "аав";
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Перегрузка функций.
В С++ функция могут существовать функции с одним и тем же именем, но разными типами аргументов. А поскольку оператор << - это функция
ostream& operator<<(ostream&, type t);
то для каждого типа type она может быть своя. Для типа char* (вернее, const char *) она выводит строку, т.е. последовательности символов, на первый из которых указывает этот указатель, а последним - символ перед завершающим нулевым...