Выделение памяти с помощью операции new

233
19 декабря 2016, 19:48

Немогу понять в чем разница между следующими двумя операторами

int *pt = new int;
*pt = 1001;
cout << "location = " << pt << " location of pointer pt: " << &pt << endl;
Вывод:
--------------------------------------
location = 0x1001000e0 
location of pointer pt: 0x7fff5fbff840

Почему pt и &pt указывают на два разных адреса. Разве это не одно и тоже?

Answer 1

pt - это указатель, а &pt - это адрес памяти, где хранится указатель. Они не могут быть равными.

Answer 2

Указатель, это переменная, которая содержит адрес другой переменной.

cout<<p делает вывод содержимого указателя, которое, как сказано выше, является адресом.

cout<<&p делает вывод адреса самой переменной-указателя, а не его содержимого.

READ ALSO
Оператор преобразования типа

Оператор преобразования типа

Какие аргументы и код возврата имеет оператор преобразования типа? В каких случаях неизбежно его использование?

304
Сортировка массива

Сортировка массива

По результатам опроса прошлого года известен список 10 политических деятелей в порядке убывания их популярностиПроведен новый опрос

219
Оператор delete: удаление массива

Оператор delete: удаление массива

Здравствуйте:) Вот такой вопрос возник, почему вот этот после выполнения

196