Урок 18: Указатели — адреса, & и *
Каждая переменная в вашей программе живёт по реальному адресу в памяти — точно как квартира на улице. Оператор & даёт адрес x (загадка scanf("%d", &x) из урока 3 наконец разгадана!). Указатель — это переменная, которая хранит адрес: int *p = &x;. С помощью *p вы обращаетесь к значению по этому адрес
Указатель — это записка с адресом квартиры. &x записывает адрес на записку, а *p говорит 'иди по адресу на записке и посмотри (или измени) то, что внутри'. Изменение через записку меняет настоящую квартиру.
- адрес в памяти
- Числовое расположение, где переменная живёт в памяти. Каждая переменная получает адрес.
- & (оператор взятия адреса)
- &x возвращает адрес x — а не его значение.
- указатель
- Переменная, которая хранит адрес другой переменной. Объявляется: int *p = &x;.
- * (разыменование)
- *p обращается к значению по адресу, который хранит p. Чтение и запись: *p = 99; меняет x.
- NULL
- Специальное значение, означающее 'этот указатель ни на что не указывает'. Всегда проверяйте перед использованием.