вещи [C++]?
char xxx[];
Всегда ли
xxx
то же самое
&xxx[0]
?
Ну вообще они разные вещи по умолчанию. Просто автоматом кастятся. Так по крайней мере в Си. Думаю и в плюсах тоже
в си как раз это так. если речь идет о нулевом элементе массива. а указатель и массив это да разное.
Имя массива - указатель типа char Адрес первого элемента - указатель типа чар Адреса обоих указателей равны Но sizeof(xxx) и sizeof(&xxx[0]) выдадут разный результат...
Имя массива автоматом приводится к указателю типа чар, но это совсем не значит, что у него такой тип. Как раз sizeof и показывает то, что типы разные
Да ясно что типы разные. Всегда ли эти указатели равны?
Для массива - всегда
Да но не совсем.
Оператор sizeof возвращает либо размер объекта, либо тип данных. В случае sizeof(array) вернется количество байт, занимаемых массивом (или элемента массива, если sizeof(array[0]), а в случае sizeof(&x) вернется размер памяти для хранения адреса.
Обсуждают сегодня