Разыменование С++
Получить адрес памяти и значение
В примере с предыдущей страницы мы использовали переменную-указатель для получения адреса памяти переменной (используется вместе с оператором &
ссылки ). Однако вы также можете использовать указатель для получения значения переменной, используя *
оператор ( оператор разыменования ):
Пример
string food = "Pizza"; // Variable declaration
string* ptr =
&food; // Pointer declaration
//
Reference: Output the memory address of food with the pointer (0x6dfed4)
cout <<
ptr << "\n";
//
Dereference: Output the value of food with the pointer (Pizza)
cout <<
*ptr << "\n";
Обратите внимание, что здесь *
знак может сбивать с толку, так как в нашем коде он выполняет две разные функции:
- При использовании в объявлении (string* ptr) он создает переменную-указатель .
- Когда он не используется в объявлении, он действует как оператор разыменования .