Как использовать указатели в C?

Как использовать указатели в C Программирование и разработка

В C изучать указатели просто и приятно. Определенные действия на языке программирования легче выполнить с помощью указателей, в то время как другие, такие как распределение динамической памяти, кажутся невозможными без них. Таким образом, чтобы быть компетентным разработчиком C, полезно разбираться в указателях. В C указатель — это переменная, в которой хранится расположение некоторой другой переменной. Вы можете использовать указатель для ссылки на другой ссылочный метод. Указатель может быть увеличен или уменьшен, указывая на то, что он указывает на следующий или предыдущий адрес памяти. Указатель будет направлен на экономию памяти и ускорение обработки. Начнем с самого начала. Обязательно используйте систему Ubuntu 20.04 Linux для реализации приведенных ниже примеров.

Пример 1

Начнем с кодирования указателей на языке C в системе Ubuntu 20.04 Linux. Войдите в систему из своей системы Ubuntu и откройте командную оболочку. Вы можете использовать «Ctrl + Alt + T», чтобы открыть его за 10 секунд. После его открытия создайте файл на языке C, используя ключевое слово «touch» в оболочке с именем файла, который будет создан. Итак, мы попробовали приведенную ниже инструкцию и добились успеха.

Начнем с кодирования указателей на языке C 

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

Теперь откройте этот файл в редакторе, чтобы начать писать код

В нашем первом примере мы объявили одну переменную целочисленного типа «a» и переменную массива символьного типа «b» в основном методе кода C. Мы использовали знак «&» с обеими переменными в операторе печати для проверки адресов памяти. Сохраните код, чтобы продолжить, нажав «Ctrl + S». Выйдите из редактора с помощью клавиши «Ctrl + X».

В нашем первом примере мы объявили одну переменную

Для его выполнения необходима компиляция кода. Итак, убедитесь, что какой-либо компилятор C настроен в системе Ubuntu 20.04 Linux. Мы использовали компилятор «gcc» для компиляции нашего кода, как показано ниже.

Итак, убедитесь, что какой-либо компилятор C

После выполнения кода C мы получили адреса памяти для обеих переменных, как показано на снимке экрана ниже.

После выполнения кода C мы получили адреса памяти для обеих переменных

Пример 2

Теперь наш второй пример будет использован, чтобы увидеть, как работают указатели. Как вы знаете, каждая переменная представляет собой энергозависимую память с ее местоположением, к которому можно обратиться с помощью символа амперсанда (&), представляющего адрес памяти. Рассмотрим следующий пример, выводит адреса переменных.

Читайте также:  Итераторы в Java

Теперь наш второй пример будет использован

Мы объявили переменную «x» и присвоили ей значение «55» в основном методе. В следующей строке подряд мы напечатали значение переменной «x». После этого мы распечатали место в памяти нашей переменной «x». В конце концов, основной метод закрывается после возврата 0 выражений.

Мы объявили переменную «x» и присвоили ей значение «55»

Перед выполнением требуется компиляция кода. Без него код работать не будет. Следовательно, приведенная ниже команда отлично работает в этом случае.

Перед выполнением требуется компиляция кода

Теперь выполнение файла показано ниже. Первая строка показывает значение переменной «x», а вторая строка показывает ее расположение в памяти.

Первая строка показывает значение переменной «x»

Пример 3

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

Если у вас нет точного местоположения для одной из переменных-указателей

Запишите приведенный ниже код в открытый файл. После инициализации основной функции мы объявили указатель переменной «p» со значением NULL. Тогда мы напечатали указатель p, или вы можете сказать, что вы напечатали его адрес в выражении print. После оператора return 0 закрывается основной метод. Поскольку компьютерная система имеет защищенную память в ячейке 0, многие ОС не позволяют приложениям получать доступ к хранилищу в определенном месте. Ячейка памяти 0 содержит особое значение; он указывает, что теперь указатель не предназначен для указания на что-то вроде доступного адреса памяти. Однако указатель, содержащий нулевую (нулевую) оценку, не должен указывать ни на что после значения по умолчанию.

Запишите приведенный ниже код в открытый файл

Скомпилируйте код C этого примера один раз.

Скомпилируйте код C этого примера один раз

После компиляции его необходимо выполнить с помощью следующей команды. Выходные данные показывают значение указателя NULL как 0.

После компиляции его необходимо выполнить с помощью следующей команды

Пример 4

Кажется, есть пара ключевых операций, которые мы могли бы использовать указатели для регулярного выполнения. (a) Мы создаем переменную-указатель, (b) затем назначаем местоположение переменной указателю и © затем, в конечном итоге, получаем значение в местоположении изменяемого указателя. Это достигается с помощью унарного символа *, который предоставляет значение переменной только в том месте, которое указано в ее аргументе. Эти операции используются в приведенном ниже сценарии. Откройте тот же файл, чтобы обновить наш код C для указателей.

Читайте также:  Как обрабатывать исключения в PHP?

Кажется, есть пара ключевых операций, которые мы могли бы

Добавьте приведенный ниже сценарий в свой файл кода C. В этом коде мы использовали целое число «x» со значением 33 и указатель целочисленного типа «p». После этого мы сохранили адрес переменной «x» в указателе «p» с помощью оператора привязки «&». Теперь первый оператор печати печатал адрес переменной «x». Другой оператор печати печатал адрес указателя, а последний оператор печати показывает значение указателя, хранящегося в нем. Оператор Return 0 использовался перед закрытием основного метода. Сохраните данные кода и закройте файл, последовательно используя сочетания клавиш «Ctrl + S» и «Ctrl + X».

Добавьте приведенный ниже сценарий в свой файл кода C

Теперь код сохранен, скомпилируйте его с помощью компилятора кода C, например, gcc.

Теперь код сохранен, скомпилируйте его с помощью компилятора кода 

Выполнение этого кода C показывает нам адрес памяти переменной x, адрес памяти указателя p и значение указателя «p», на которое в нем была сделана ссылка с использованием переменной «x».

Выполнение этого кода C показывает нам адрес памяти переменной x

Пример 5

Как и в предыдущем примере, давайте посмотрим на другой пример указателя в C. Откройте файл кода еще раз, чтобы добавить в него новый код.

Как и в предыдущем примере, давайте посмотрим на другой пример указателя в C

Мы объявили две переменные-указатели целочисленного типа, «p» и «x», в основном методе. Затем мы присвоили значение «47» переменной «x» и распечатали это значение «x» и его адрес, используя выражение printf сразу после объявления. После этого мы присвоили адрес переменной «x» указателю «p». Операторы печати использовались для отображения значения указателя «p» и его адреса. Затем мы присвоили новое значение переменной «x» и распечатали значение и адрес указателя «p». После этого мы присвоили указателю «p» новое значение и отобразили его значение и адрес.

Мы объявили две переменные-указатели целочисленного типа

Снова скомпилируйте код.

Снова скомпилируйте код

Выполнение этого кода дает нам обновленные значения обеих переменных «x» и «p» после изменения. При этом адрес памяти для обеих переменных остался прежним.

Выполнение этого кода дает нам обновленные значения обеих переменных «x»

Заключение

В этой статье рассказывается, как объявить и инициализировать указатель, а также указать или связать его с другой переменной. Надеюсь, это руководство будет для вас легким для понимания и реализации.

Оцените статью
bestprogrammer.ru
Добавить комментарий