Тип указателя
Тип указателя в C++ хранит адрес объекта в памяти.
Указатель объявляется с помощью символа * перед
именем переменной. Тип, стоящий перед звёздочкой,
определяет, на объект какого типа будет указывать
указатель. Чтобы получить адрес переменной,
используется оператор &, а чтобы обратиться
к значению по адресу - оператор разыменования *.
Указатель может быть нулевым, то есть не указывать
ни на какой объект - для этого используется значение
nullptr. Указатели одного типа можно сравнивать,
присваивать друг другу и изменять, перемещая их по
памяти. Размер указателя зависит от платформы, но
обычно составляет 8 байт на 64-битных системах.
Синтаксис
type *name;
type *name = &variable;
type *name = nullptr;
Пример
Давайте создадим переменную и указатель на неё, а затем выведем адрес и значение по адресу:
#include <iostream>
using namespace std;
int main()
{
int num = 42;
int *ptr = #
cout << "Address: " << ptr << endl;
cout << "Value: " << *ptr << endl;
return 0;
}
Результат выполнения кода:
"Address: 0x7ffee3b9c8ac"
"Value: 42"
Пример
Давайте изменим значение переменной через указатель:
#include <iostream>
using namespace std;
int main()
{
int num = 10;
int *ptr = #
*ptr = 20;
cout << num << endl;
return 0;
}
Результат выполнения кода:
20
Пример
Давайте создадим нулевой указатель и проверим его перед использованием:
#include <iostream>
using namespace std;
int main()
{
int *ptr = nullptr;
if (ptr == nullptr) {
cout << "Pointer is null" << endl;
}
int num = 5;
ptr = #
cout << *ptr << endl;
return 0;
}
Результат выполнения кода:
"Pointer is null"
5
Смотрите также
-
тип
nullptr_t,
который представляет тип нулевого указателя -
тип
array-type,
который тесно связан с указателями при передаче в функции -
тип
lvalue-ref,
который является альтернативой указателям для передачи по ссылке -
тип
void,
который используется для указателей на произвольный тип