Зміст

Вказівники

Вказівник це змінна, яка містить адресу пам'яті комп'ютера.

Вказівники вказують на місце в пам'яті, де зберігається значення.

Опис

Опис вказівника залежить від типу значення, на яке він вказуює.

Наприклад, вказівник на ціле число має тип int*, вказівник на дійсне число має тип double*, а вказівник на символ має тип char*.

Присвоєння значень

Надамо вказівнику адресу змінної типу int


 int n1 = 10;
 int *ptr1; //вказівник на int
 ptr1 = &n1;//присвоюємо адресу
 //виведення адреси та значення
 cout <<ptr1<< "  "<<n1<<endl;

Результат:


 0x61fe0c  10 

Надамо вказівнику адресу змінної типу double


 double n2=3.14;
 double *ptr2;//вказівник на double
 ptr2=&n2;//присвоюємо адресу
 //виведення адреси та значення
 cout<<ptr2<< "  "<<n2<<endl;

Результат:


 0x61fe00  3.14 

Що таке розіменування

Розіменування - це процес отримання значення за його адресою в пам'яті. Цей процес виконується за допомогою оператора розіменування, який зазвичай позначається символом зірочки (*).

Декілька стандартних прикладів.

Виведення значення, на яке вказує вказівник:


 int n = 10;
 int *ptr=&n;
 cout<<*ptr;

Результат:


 10 

Присвоєння нового значення змінній через вказівник:


 int n = 10;
 int *ptr=&n;
 *ptr=20;
 cout<<n;

Результат:


 20 

Два вказівника вказують на одне місце в пам’яті:


 int n, *q, *p;
 n=100;
 p=&n;  //в p адреса n
 q=p;   //в q теж адреса n
 (*p)++; //за адресою в p збільшити значення на 1
 cout<<n<<" "<<*q<<" "<<*p; 

Вказівник p та вказівник q вказують на одну область в пам’яті, де розташовано значення змінної n.

Результат:


 101 101 101 

Зміст