Адрес указателя на первый элемент массива
От: Neavirc  
Дата: 05.05.08 10:01
Оценка: 2 (1)
Скажите пожалуйста, почему адрес указателя на первый элемент массива точно такой же, как адрес самого первого элемента?

Пример:

#include <iostream>

using namespace std;

int main()
{
  int i[] = { 1, 2, 3 };
  cout << i << endl; // Приведение имени массива к указателю на его первый элемент. Эквивалентно &i[0] или &(*i)                                                                                                                                                                                 
  cout << &i << endl; // <-- Адрес указателя на первый элемент

  cout << endl;
}


Запускаем:

[sergey@myhost cpp]$ g++ main.cpp && ./a.out
0xbfe11848
0xbfe11848

Как такое может быть? Ведь указатель на int и собственно int — разные обьекты и должны иметь разные адреса Вот так:

int i = 100;                                                                                                                                                                                                  
int* p = &i;                                                                                                                                                                                                    
cout << p << endl;                                                                                                                                                                                              
cout << &p << endl;


Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.