Что такое указатель?
Часть раздела Logic & Flow путешествия по C на Coddy — урок 1 из 63.
Представьте память вашего компьютера как гигантское многоквартирное здание с тысячами комнат. У каждой комнаты есть уникальный адрес, и в каждой комнате может храниться один фрагмент данных. Когда вы создаете переменную в C, ей назначается одна из этих комнат.
Указатель — это специальный тип переменной, который не хранит обычные данные, такие как числа или символы. Вместо этого он хранит адрес ячейки памяти другой переменной. Представьте это как запись номера чьей-то квартиры на листке бумаги — сам листок не содержит человека, но он точно говорит вам, где его найти.
int age = 25; // Это создает переменную 'age' в памяти
int *ptr; // Это создает указатель, который может хранить адресВ этом примере age хранится по некоторому адресу памяти (скажем, ячейка 1004), а ptr — это переменная-указатель, которая может хранить адрес 1004, чтобы «указывать» на переменную age.
Указатели являются одной из самых мощных возможностей языка C, так как они позволяют напрямую работать с адресами памяти, делая ваши программы более эффективными и открывая доступ к таким продвинутым методам, как динамическое выделение памяти и сложные структуры данных.
Шпаргалка
Указатель — это переменная, которая хранит адрес памяти другой переменной, а не сами данные напрямую.
Чтобы объявить указатель, используйте оператор *:
int age = 25; // Обычная переменная
int *ptr; // Переменная-указатель, которая может хранить адресУказатели позволяют напрямую манипулировать памятью и открывают доступ к продвинутым методам программирования, таким как динамическое распределение памяти и сложные структуры данных.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Основы указателей
Что такое указатель?Объявление указателейОператор взятия адреса (&)Оператор разыменования (*)Указатели NULLИтоги: Основы указателей4Проект: Простая текстовая утилита
Обзор проектаПодсчет символов2Указатели и массивы
Имена массивов как указателиЭлементы массива — указателиАрифметика указателейСравнение указателейИтоги: Обход массива через указатели5Указатели и функции
Передача по значениюПередача указателей в функцииИзменение переменных через указателиКлассический пример: SwapПередача массивов в функцииИтоги: указатели как аргументы функций8Структуры и указатели
Указатели на структурыОператор «стрелка» (->)Передача структур по значениюПередача указателей на структурыДинамическое выделение памяти для структурИтоги: Изменение структур через указатели11Итоговые задачи на повторение
Повторение: динамическая конкатенация строкПовторение: массив структурПовторение: счетчик частоты слов3Символьные массивы и строки
Строки как массивы charНуль-терминаторВвод строк с помощью scanfИспользование strlen()Использование strcpy()Использование strcat()Использование strcmp()Итоги: основные строковые функции