👉Указатели
Указывают на адрес объекта в памяти
*
- Разыменование. Показывает значение переменной по заданному адресу ( разыменование - перевод адреса памяти в значение 0x84C4... ⇒ 5 )
&
- получает адрес переменной в памяти 0x4D8F...
p - pointer. Пишется перед названием переменной для понимания, что это именно указатель.

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