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.