Указатели
Указатель — это переменная, хранящая адрес другой переменной или объекта в памяти компьютера. Адрес записывается в виде целого числа, представляющего собой смещение от начала области памяти.
Объявление указателей
Объявление указателя осуществляется с помощью символа *. Например:
``c int *ptr; ``
Здесь ptr является указателем на целое число (int).
Присваивание значений указателям
Чтобы присвоить указателю значение адреса переменной, используется оператор взятия адреса &:
``c int a = 10; int *ptr = &a; ``
Теперь ptr содержит адрес переменной a.
Доступ через указатель
Доступ к значению переменной по указателю осуществляется оператором разыменования *:
``c printf("%d\n", *ptr); ``
Арифметические операции над указателями
Указатели поддерживают арифметические операции:
Увеличение указателя на единицу увеличивает его адрес на размер типа, на который он указывает.
Сложение указателя с целым числом сдвигает указатель на указанное количество элементов.
Пример:
``c int arr[] = {1, 2, 3}; int *p = arr; *p++; // эквивалентно *(p + 1) ``
Адресная арифметика
позволяет выполнять вычисления с адресами переменных и объектов.
Примеры операций
Вычитание двух указателей дает разницу в количестве элементов между ними.
Умножение указателя на целое число умножает адрес на размер элемента.
Пример программы
```c #include <stdio.h>
int main() { int arr[] = {1, 2, 3, 4, 5}; int *p = arr;
printf("Первый элемент: %d\n", *p); // выводит первый элемент массива p++; printf("Второй элемент: %d\n", *p); // выводит второй элемент массива } ```
Проверка знаний
Вопросы для самопроверки
Что такое указатель?
Как объявляется указатель?
Какие операции можно выполнять с указателями?