Введение в указатели в C

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

Использование указателей в языках программирования и C

Теперь давайте поговорим о том, где в C требуется указатель. Существует много задач, таких как динамическое выделение памяти, для которых требуются указатели при программировании на языке C. Использование указателей позволяет легко выполнить такую ​​задачу

Различные способы доступа к переменному адресу в C

Давайте попробуем узнать, как можно распечатать адрес переменной в C.

Есть два способа, которыми мы можем на самом деле напечатать адрес переменной. Эти два метода:

  1. Используя амперсанд (&) метод
  2. С помощью указателя

Давайте рассмотрим каждый метод с примером

1. Используя амперсанд (&) метод

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

Давайте посмотрим это на примере

#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)

Теперь скопируйте приведенный выше фрагмент кода и запустите его.

Он покажет следующий вывод:

The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e

Хотя можно увидеть другое значение, которое назначается случайным образом при выполнении примера

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

2. С помощью указателя

Это современный подход для доступа к адресу переменной. Прежде чем использовать указатель, сообщите нам общий синтаксис объявления указателя.

  • Общий синтаксис объявления указателя . Общий синтаксис, который мы используем для объявления переменной:

data_type *variable

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

Простой пример этого:

double *var_text

После обсуждения концепции общего синтаксиса объявления указателя , дайте нам знать, как мы можем использовать указатель в программировании

Чтобы использовать указатель в C, в основном нужно выполнить следующие три шага:

  • Определение переменной указателя
  • Присвоение адреса переменной, адрес которой мы хотим сохранить в переменной указателя
  • Теперь, когда у нас есть указатель переменной с адресом, мы снова можем извлечь значение переменной из адреса, хранящегося в указателе. Это можно сделать с помощью * в C. * это просто один из унарных операторов

Давайте использовать вышеупомянутые шаги с примером, а затем мы объясним этот пример шаг за шагом

пример

#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)

Теперь скопируйте приведенный выше фрагмент кода и запустите его.

Он покажет следующий вывод:

Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10

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

Строка int varNumValue = 10; просто объявляет переменную со значением 10

Вторая строка, следующая за ней: int * ipointervarNumValue; просто объявлено для хранения адреса переменной

Следующий фрагмент кода: ipointervarNumValue = & varNumValue; используется для хранения адреса переменной. Здесь мы используем концепцию амперсанда, которую мы обсуждали ранее в статье

Теперь мы можем просто получить значение и использовать указатель в нашем фрагменте кода

Теперь давайте рассмотрим различные типы указателей в C

Типы указателя в C

Существуют различные типы указателей в C. Основные типы указателей, которые обычно используются:

  • Нулевой указатель
  • Висячий указатель
  • Общие указатели
  • Дикий указатель

Давайте объясним каждый

1. Нулевой указатель: нулевой указатель - это тип указателя, который указывает на ничто. Обычно это указывает на базовый адрес сегмента. Если указателю ничего не присвоено, то он имеет нулевое значение

Обычно используется в заголовочных файлах, таких как stdio.h, alloc.h

2. Dangler Pointer: этот тип указателя может быть создан путем удаления объекта без изменения значения указателя

3. Общий указатель: этот тип указателя объявляется с использованием переменной типа void. Так как он имеет тип данных void, следовательно, он называется универсальным указателем. Этот тип указателя не указывает на какие-либо данные

4. Дикий указатель: указатель, который не был инициализирован, называется диким указателем. Указатель этого типа инициализируется во время выполнения, когда нужно его использовать. Этот тип указателя известен как дикий указатель

Вывод

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

Рекомендуемые статьи

Это руководство по указателям в C. Здесь мы обсуждаем различные типы и использование указателей в C с методами и примерами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Что такое язык программирования?
  2. C против C ++
  3. Шаблоны в C Программирование
  4. Лучшие компиляторы Си
  5. Руководство по указателям на C ++
  6. Указатели в C # с примерами