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<час>Объяснение программы
<час>
150
![]()
Здесь указатель pc и нормальная переменная c , оба типа160
, создано.
Поскольку ПК и с изначально не инициализированы, указатель pc указывает либо на отсутствие адреса, либо на случайный адрес. И переменная c имеет адрес, но содержит случайное мусорное значение.
172
![]()
Это присваивает 22 переменной c . То есть 22 хранится в ячейке памяти переменной c. .
184
![]()
Это присваивает адрес переменной c к указателю pc .
193
![]()
Это присваивает 11 переменной c .
208
![]()
Это изменяет значение в ячейке памяти, на которую указывает указатель pc. до 2.Распространенные ошибки при работе с указателями
Предположим, вам нужен указатель pc чтобы указать на адрес c . Затем
139Вот пример синтаксиса указателя, который часто сбивает с толку новичков.
142Почему мы не получили ошибку при использовании
211
?Это потому, что
154эквивалентно
161В обоих случаях мы создаем указатель
225
(не239
) и присвоение243
к нему.Чтобы избежать этой путаницы, мы можем использовать такой оператор:
174<час>Теперь вы знаете, что такое указатели. В следующем уроке вы узнаете, как указатели связаны с массивами.
Язык C
- C# Hello World — ваша первая программа на C#
- Ключевые слова и идентификаторы C#
- Переменные C# и (примитивные) типы данных
- Операторы С#
- Побитовые операторы C# и операторы сдвига битов
- Базовый ввод и вывод C#
- Выражения, операторы и блоки C# (с примерами)
- С# Комментарии
- C указатели
- Связь между массивами и указателями