C++ Операторы указателей (& и *)
C++ предоставляет два оператора указателей: оператор взятия адреса & и оператор разыменования *.
Указатель — это переменная, которая содержит адрес другой переменной. Можно сказать, что переменная, содержащая адрес другой переменной, «указывает на» эту другую переменную. Переменная может быть любого типа данных, включая объекты, структуры или указатели.
Оператор взятия адреса &
& — это унарный оператор, который возвращает адрес памяти своего операнда. Например, если var — переменная целочисленного типа, то &var — её адрес. Этот оператор имеет тот же приоритет, что и другие унарные операторы, и вычисляется справа налево.
Оператор & можно читать какоператор взятия адреса, это означает, что&varчитается как «адрес var».
Оператор разыменования *
Второй оператор — это оператор разыменования *, который является дополнением к оператору &. * — это унарный оператор, возвращающий значение переменной по адресу, указанному его операндом.
Пожалуйста, посмотрите следующий пример, чтобы понять использование этих двух операторов.
Пример
using namespace std;
int main ()
{
int var;
int *ptr;
int val;
var = 3000;
// получить адрес var
ptr = &var;
// Получить значение ptr
val = *ptr;
cout << "Значение var :" << var << endl;
cout << "Значение ptr :" << ptr << endl;
cout << "Значение val :" << val << endl;
return 0;
}
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
Value of var :3000 Value of ptr :0xbff64494 Value of val :3000Другие расширения