Page cover

👉Указатели

Указывают на адрес объекта в памяти

Указатель — это переменная, которая хранит в себе не само значение, а адрес памяти объекта. Указатель принимает адрес переменной в памяти и работает с ним.

* - Разыменование. Показывает значение переменной по заданному адресу ( разыменование - перевод адреса памяти в значение 0x84C4... ⇒ 5 )

& - получает адрес переменной в памяти 0x4D8F...

p - pointer. Пишется перед названием переменной для понимания, что это именно указатель.

Каждая переменная имеет свой адрес в памяти.

Указатели позволяют работать напрямую с этим адресом и заменять его значения. int a = 5; ( 5 ⇒ 0x009BF4C )

int* pa = &a; (*pa = 0x009BF4C )

*pa = 2; (0x009BF4C ⇒ 2) теперь a = 2 т.к мы с помощью указателя заменили значение в памяти.

Получение значения переменной
int value = 5;

int* pvalue = &value;

cout << pvalue << endl; // выведит адрес в памяти ( 0x414F... )

cout << *pvalue << endl; // выведит значение переменной ( 5 ) *РАЗЫМЕНОВАНИЕ


Мы можем менять значения объектов в памяти.

Изменение значения переменной
int a = 5;
int *pa = &a; 

*pa = 2; // меняем значение переменной в памяти

cout << a << endl; // теперь a = 2, т.к мы изменили значение переменной в памяти

Можно менять значение объектов за пределами их области видимости т.к мы работаем с памятью.

Изменение значение переменной из функции
void ValueChange(int* pvalue)
{
    *pvalue = 2; // меняем значение переменной в памяти
}


int main()
{

    int value = 5;

    ValueChange(&value);

    cout << value;     // выведит 2, т.к мы изменили значение переменной в функции
                      // с помощью указателя


}

Last updated