1. Введение

C — очень мощный язык программирования, который используется многими разработчиками программного обеспечения для разработки различного программного обеспечения. Однако для новичка язык C довольно сложен для понимания. Большая часть трудностей в изучении C возникает из-за путаницы с концепцией указателей. В этой статье я объясню концепцию указателей с помощью некоторых фрагментов кода.

2. Указатели, адреса и переменные

Указатель — это переменная, которая содержит адрес памяти.

Важно различать указатель, адрес, который содержит указатель, и значение по адресу, удерживаемому указателем. Это источник большей части путаницы с указателями. Мы проиллюстрируем это в следующих фрагментах кода:

int nVariable = 5;

int *pPointer =

Первый оператор объявляет переменную «nVariable» целочисленного типа и присваивает ей значение 5.

Второй оператор объявляет переменную-указатель, которая содержит адрес целого числа, и присваивает ей адрес переменной «nVariable».

Итак, давайте просто представим, что память — это набор шкафчиков. Каждому из этих шкафчиков присвоен номер шкафчика для целей идентификации. Первый оператор сделает что-то вроде резервирования шкафчика с номером «1234» и поместит значение «5» в этот шкафчик. Второй оператор сделает что-то вроде резервирования номера шкафчика «4321», а затем поместит в шкафчик значение «1234». Таким образом, номер шкафчика «4321» на самом деле хранит номер шкафчика, в котором хранится значение «5».

3. Косвенность

Термин «косвенность» относится к методу доступа к значению по адресу, удерживаемому указателем.

Оператор косвенности (*) также называется оператором разыменования. Следующие фрагменты кода на C++ иллюстрируют этот метод:

int nVariable = 5;

int *pPointer =

printf("Вывод: %d", *pPointer);

На выходе фрагментов кода будет цифра «5». Помните, что «pPointer» — это переменная-указатель, которая содержит адрес переменной «nVariable». Обратите внимание, что мы используем «*pPointer» для оценки значения, удерживаемого переменной «nVariable», и это то, что мы называем «косвенным».

4. Заключение

Эта статья призвана предоставить простое руководство для понимания концепции указателей, адресов и переменных в C. Предполагается, что читатели имеют некоторые базовые знания C.