#8 - Указатели в Си

#8 - Указатели в Си

Язык Си позволяет оптимизировать передачу различных данных в функции и объекты за счёт указателей. За урок мы научимся создавать, а также работать с указателями в языке Си.

Видеоурок

Каждая переменная или объект хранит данные в определенной ячейке в памяти компьютера. Каждый раз, создавая новую переменную, мы создаем новую ячейку в памяти, с новым значением для неё. Чем больше ячеек, тем больше компьютерной памяти будет занято.


Адрес в памяти компьютера это число, к которому мы можем получить доступ. Указатель - это тот же адрес в памяти, по которому мы получаем переменную и по итогу её значение.


Чтобы работать с указателями необходимо воспользоваться двумя специальными символами: & и *. Пример использования:

int t = 237; // Простая переменная
int *p; // Создание указателя, который принимает лишь адрес другой переменной
p = &t; // Устанавливаем адрес нашей первой переменной

Переменные t и p будут равны числу 237, так как оба ссылаются на одну ячейку. Сам же компьютер на вычислении обеих переменных потратит меньше усилий, ведь обе переменные ссылаются на одно и то же.


Использование указателей оправдано в случае передачи данных в функции или же в объекты. Также технология отлично подойдёт для передачи большого объема данных в ходе программы.

Исходный код

Весь код будет доступен после подписки на проект!

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Уроки Java для начинающих
21 урок
Курс по React JS для начинающих
11 уроков
Создание C# WPF игры / Разработка игры с дизайном
6 уроков
Обучение технологиям в одном видеоуроке
16 уроков
Изучение C# и создание Windows программ
Java 3D Game / Разработка игры Minecraft
5 уроков
Комментарии (1)
Добавить комментарий

Кирилл 25 июля 2024 в 13:33

Переменная указатель на int *p НЕ будет равна t (237), потому что указатель хранит адрес в вышеописанном случае.

Корректнее наверное бы было выразиться, что значение переменной t, находится по адресу, который хранится в указателе p?
Ничего не сказали о том, что указатель на указатель тоже существует?

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