Указатели С++
Создание указателей
Из предыдущей главы вы узнали, что мы можем получить адрес памяти переменной с помощью &
оператора:
Пример
string food = "Pizza";
// A food variable of type string
cout <<
food; // Outputs the value of food (Pizza)
cout << &food; // Outputs the memory address of food (0x6dfed4)
Однако указатель — это переменная, которая хранит адрес памяти в качестве своего значения .
Переменная-указатель указывает на тип данных (например, int
или string
) того же типа и создается с помощью *
оператора. Адрес переменной, с которой вы работаете, присваивается указателю:
Пример
string food = "Pizza"; // A food variable
of type string
string* ptr =
&food; // A pointer variable, with the name
ptr, that stores the
address of food
// Output the value of food (Pizza)
cout << food << "\n";
// Output
the memory address of food (0x6dfed4)
cout << &food << "\n";
//
Output the memory address of food with the pointer (0x6dfed4)
cout <<
ptr << "\n";
Объяснение примера
Создайте переменную-указатель с именем ptr
, которая указывает на переменную string
, используя знак звездочки
*
( string* ptr
). Обратите внимание, что тип указателя должен соответствовать типу переменной, с которой вы работаете.
Используйте &
оператор, чтобы сохранить адрес памяти переменной с именем food
и присвоить его указателю.
Теперь ptr
содержит значение food
адреса памяти.
Совет: Есть три способа объявить переменные-указатели, но первый способ предпочтительнее:
string* mystring; // Preferred
string *mystring;
string * mystring;