Вказівник – це змінна, значенням якої є адреса. Вона вказує на початок області оперативної пам’яті, де зберігається дане. Вказівники дають змогу оперувати не з іменами даних, а з їх адресами. Вказівники утворюють так:
<тип даного> * <назва вказівника>;
|
Можна створювати вказівники на сталі, змінні, функції, інші вказівники тощо. Особливо ефективною є робота з вказівниками на рядки та масиви.
Надати значення вказівникам можна так:
<назва вказівника> = <адреса змінної>;
|
Приклад 5. Нехай маємо наступний фрагмент програми:
int main()
{
int *nomer;___________________________________________________________
float *rist, *prtA;______________________________________________________
int n = 10;____________________________________________________________
float stud1=34.9, stud2, stud3;___________________________________________
nomer = &n;_________________________________________________________
prtA = &stud1;________________________________________________________
cout << "nomer = " << nomer << "\n";_____________________________________
cout << "stud1= " <<*prtA<< "\n";________________________________________
rist = &stud2;_________________________________________________________
*rist = 1.65;__________________________________________________________
cout << "stud2= " << stud2;_____________________________________________
getch();______________________________________________________________
}
Отримаємо наступний результат:

Приклад 6.Обчислити довжини (в байтах) вказівників на різні типи даних можна так:
int *prt_i; double *prt_d; char *ptr_c;
cout << "\n na tsiliy tip = " << sizeof(prt_i);
cout << "\n na diusniu tip = " << sizeof(prt_d);
cout << "\n na simvolniu tip = " << sizeof(ptr_c);
Отримаємо:

Вказівники можна переадресовувати.
Сталий вказівник, що вказуватимемо на одну і ту ж адресу, оголошують так:
const int*rik;
Для вказівників залежно від операційної системи та версії компілятора резервується 2 або 4 байти в оперативній пам’яті.
Таблиця 6. Операції, визначені над вказівниками
Операція
| Приклади і пояснення
|
==, !=, >=, <=, >, <
| Порівнює значення двох вказівників (адреси, на які вони вказують). Наприклад, якщо вказівники вказують на одне і те ж саме дане, то результатом порівняння vk1 == vk2 беде істина, інакше – хибність.
|
-
| vk1 - vk2. Використовується для визначення кількості елементів, які наявні між двома вказівниками.
|
+, -
| vk1 + k, vk1 – k. Знаходить вказівник, який зміщений відносно даного на k одиниць.
|