@artemka85

Массив в C + указатель?

Вообщем , задумался о мысли .
Вот к примеру я создаю массив :
int a[3] = {1, 2, 3};
Выведу : a
Выведу : &a
и : &a[0]
одинаково . хм..
ведь по сути переменная "a" содержит адрес нулевого элемента массива , правильно ?
значит в памяти создалась эта переменная "a" точнее указатель , и в нем адрес нулевого элемента массива .
но тогда при выводе :
&a и &a[0] должны быть выведены разные адреса . так что же получается .
компилятор скрывает от нас эту переменную?
  • Вопрос задан
  • 384 просмотра
Пригласить эксперта
Ответы на вопрос 2
ведь по сути переменная "a" содержит адрес нулевого элемента массива , правильно ?

Нет. Как вы верно подметили, имя массива, его адрес и адрес первого элемента - это одно и тоже. Никакой дополнительной скрытой переменной нет, т.к. вы выделяете массив в автоматической памяти (на стеке).
Ответ написан
@lehatut1
программист C++
там в одном случае просто указатель на нулевой элемент.
а в другом случае ссылка на указатель на нулевой элемент(ссылка на указатель это по сути то же самое, что указатель на указатель).
если бы массив был динамический, это бы имело значение в смысле выделения памяти.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы