Указатели в Си на примерах

Указатели в C на примерах

Указатель — это переменная, значением которой является адрес другой переменной.

Простой пример указателя:

Получаем: C pointer

В этом примере суть основное, что надо знать про указатели в языке Си. Сначала объявлена переменная val;

int val = 0;

Далее объявляем указатель на тип int с помощью оператора *:

int *pVal;

Принято название указателя начинать с «p», ведь указатель по-английски pointer.

С помощью оператора & получаем адрес переменной val и присваиваем этот адрес указателю. Указатель — это переменная для хранения адреса другой переменной:

pVal = &val;

Далее выполняем разыменование с помощью оператора *:

*pVal = 123;

Выражение *pVal — это переменная, на которую указывает наш указатель pVal, а он указывает на val. *pVal — это новое обозначение исходной переменной val. Выражение

*pVal = 123;

равно выражению

val = 123;

Итак, указатель хранит адрес переменной, а разыменованный указатель есть просто новое обозначение переменной, на которую указывает указатель.

Ещё раз:

int val = 0; // Объявляем переменную val типа int;

int *pVal; // Объявляем указатель на тип int;

pVal = &val; // Сохраняем адрес переменной val в указателе pVal;

// Теперь разыменование *pVal; это *pVal — просто новое обозначение переменной val.

*pVal = 123; // Присваиваем переменной val значение 123;

//Теперь val содержит 123. Вместо *pVal = 123; можно было написать val = 123; с тем же успехом.

Обратите внимание, что оператор * используется для объявления указателей и для разыменования. Оператор & используется для получения адреса переменной. Операторы * и & являются обратными. Пример:

*(&val) = 123;

даёт

val = 123;
Быстрый поиск: Язык C. Java и базы данных