Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

C указатели

Указатели C

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

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

<час>

Адрес в C

Если у вас есть переменная var в вашей программе 02 даст вам его адрес в памяти.

Мы использовали адрес много раз при использовании 17 функция.

06

Здесь введенное пользователем значение сохраняется по адресу var переменная. Возьмем рабочий пример.

15 

Вывод

23

Примечание. Вы, вероятно, получите другой адрес, когда запустите приведенный выше код.

<час>

Указатели C

Указатели (переменные-указатели) — это специальные переменные, которые используются для хранения адресов, а не значений.

Синтаксис указателя

Вот как мы можем объявить указатели.

37

Здесь мы объявили указатель p из 25 тип.

Вы также можете объявлять указатели этими способами.

45
<час>

Возьмем еще один пример объявления указателей.

53

Здесь мы объявили указатель p1 и нормальная переменная p2 .

<час>

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

Возьмем пример.

66

Здесь 5 присвоено c переменная. И адрес c назначается компьютеру указатель.

<час>

Получить значение объекта, на которое указывают указатели

Чтобы получить значение объекта, на который указывают указатели, мы используем 34 оператор. Например:

78

Здесь адрес 43 назначается компьютеру указатель. Чтобы получить значение, хранящееся по этому адресу, мы использовали *pc .

Примечание. В приведенном выше примере ПК указатель, а не 57 . Вы не можете и не должны делать что-то вроде 66;

Кстати, 71 называется оператором разыменования (при работе с указателями). Он работает с указателем и возвращает значение, хранящееся в этом указателе.

<час>

Изменение значения, на которое указывают указатели

Возьмем пример.

85

Мы присвоили адрес c на компьютер указатель.

Затем мы изменили значение c на 1. Поскольку pc и адрес c то же самое, 85 дает нам 1.

Возьмем другой пример.

95

Мы присвоили адрес c на компьютер указатель.

Затем мы изменили 90 на 1 с помощью 101 . Поскольку ПК и адрес c то же самое, c будет равно 1.

Возьмем еще один пример.

102

Изначально адрес c назначается компьютеру указатель с использованием 110 . Поскольку c равно 5, 122 дает нам 5.

Затем адрес d назначается компьютеру указатель с помощью 133 . Поскольку d равно -15, 146 дает нам -15.

<час>

Пример:Работа с указателями

Возьмем рабочий пример.

110

Вывод

125
<час>

Объяснение программы

  1. 150

    Здесь указатель pc и нормальная переменная c , оба типа 160 , создано.
    Поскольку ПК и с изначально не инициализированы, указатель pc указывает либо на отсутствие адреса, либо на случайный адрес. И переменная c имеет адрес, но содержит случайное мусорное значение.
  2. 172

    Это присваивает 22 переменной c . То есть 22 хранится в ячейке памяти переменной c. .
  3. 184

    Это присваивает адрес переменной c к указателю pc .
  4. 193

    Это присваивает 11 переменной c .
  5. 208

    Это изменяет значение в ячейке памяти, на которую указывает указатель pc. до 2.
<час>

Распространенные ошибки при работе с указателями

Предположим, вам нужен указатель pc чтобы указать на адрес c . Затем

139

Вот пример синтаксиса указателя, который часто сбивает с толку новичков.

142

Почему мы не получили ошибку при использовании 211 ?

Это потому, что

154

эквивалентно

161

В обоих случаях мы создаем указатель 225 (не 239 ) и присвоение 243 к нему.

Чтобы избежать этой путаницы, мы можем использовать такой оператор:

174
<час>

Теперь вы знаете, что такое указатели. В следующем уроке вы узнаете, как указатели связаны с массивами.


Язык C

  1. C# Hello World — ваша первая программа на C#
  2. Ключевые слова и идентификаторы C#
  3. Переменные C# и (примитивные) типы данных
  4. Операторы С#
  5. Побитовые операторы C# и операторы сдвига битов
  6. Базовый ввод и вывод C#
  7. Выражения, операторы и блоки C# (с примерами)
  8. С# Комментарии
  9. C указатели
  10. Связь между массивами и указателями