Для того щоб отримати (прочитати) значення, записане в деякій області пам'яті, на яку посилається покажчик, використовують операцію непрямого звернення, або разименованія (*). При цьому використовується ім'я покажчика із зірочкою перед ним:
long double Num = 10;
long double Flag;
long double * ptr = &Num;
На практиці досить широко застосовується так званий порожній покажчик (типу void), який може вказувати на об'єкт будь-якого типу. Для отримання доступу до об'єкта, на який посилається вказівник void, його необхідно попередньо привести до того ж типу, що і тип самого об'єкта.
Розглянемо приклад, який ілюструє використання порожнього покажчика.
Int main ()
Int nNum = 9;
Void * ptr;
Доступ до елементів масиву через покажчики
char * pArr = ArrayOfChar;
Разименовивая покажчик pArr, можна отримати доступ до вмісту ArrayOfChar [0]:
char Letter = * pArr;
Оскільки в C ++ покажчики і масиви тісно взаємопов'язані, збільшуючи або зменшуючи значення покажчика на масив, програміст отримує можливість доступу до всіх елементів масиву шляхом відповідної модифікації покажчика:
// pArr вказує на ArrayOfChar [0] ( 'W')
// pArr вказує на ArrayOfChar [3] ( 'L')
// pArr вказує на ArrayOfChar [4] ( 'D')
char Letter = * pArr; // Letter = 'D';
Таким чином, після проведених арифметичних операцій покажчик pArr буде посилатися на елемент масиву з індексом 4.
До цього ж елементу можна звернутися в інший спосіб:
Letter = * (ArrayOfChar + 4);
// ЕквівалентLetter = ArrayOfChar [4];
Присвоєння значень одного масиву значень іншого масиву виду Array [] = Another [] або Array = Another неприпустимо, так як компілятор не може самостійно скопіювати всі значення одного масиву в значення іншого. Для цього програмісту необхідно робити певні дії (при доступі до елементів за індексом найчастіше використовується циклічне привласнення).