комірок, з якими можна працювати по роздільності чи зв’язаними ділянками.
Вказівник
– це змінна, що містить адресу початку певної ділянки оперативної пам’яті. Вказівник – це фізична сутність, а отже під нього виділяється пам’ять як і під будь-яку змінну.
char *p;
std::cout << &p; //вказівник як і будь-яка змінна має свою адресу розміщення
Розмір вказівника визначається розміром машинного слова заданої платформи.
char *p;
sizeof(p); //4//поверне розмір самого вказівника
Оголошення вказівника : char *pC; int *pI;
До будь-якої зміннлї можна застосувати операція взяття адреси - &;
char a;
&a; //оператор & поверне адресу розміщення змінної a
Наступні рядки коду описують сутність вказівника.
//Оголошення вказівника р та змінної с
char *p, c;
//Запис до p адресу змінної с
p = &c; //операція взяття адреси
//звернення до с через вказівник р
*p= 10; //розіменування вказівника
Вказівник може бути будь-якого типу.
По-суті тип вказівника нам говорить про:
1) кількість байт, що потрібно взяти від адреси-початку
2) як цю послідовність байт трактувати( цілочисельний тип, раціональний, структура, …)
Також є особливий тип вказівника void*. Вказівник такого типу містить лише адресу і до нього не може бути застосовано операцію розіменування. Для цього ми повинні використати явне привденення типів.
void *pV = &c;
(char)pV = 5; //приведення до типу char та звернення до ділянки, що містить с
sizeof(pV); //розмір безтипового вказівника як і будь-якого = 4 байти
Висячий вказівник – вказівник, який посилається на неіснуючу змінну. Рекомендується присвоювати таким вказівникам NULL.