Оператор взятия адреса
Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 2 из 56.
Теперь, когда вы понимаете, что такое указатель, вам нужно научиться тому, как на самом деле получить адрес памяти переменной. Здесь на помощь приходит оператор взятия адреса (&).
Оператор взятия адреса & ставится перед именем переменной для получения её адреса в памяти. Когда вы используете &variable_name, он возвращает местоположение в памяти, где хранится эта переменная.
int number = 42;
int* ptr = &number; // ptr теперь хранит адрес переменной numberВ этом примере &number получает адрес памяти переменной number, и мы присваиваем этот адрес нашему указателю ptr. Указатель не содержит значение 42 — он содержит адрес, по которому хранится 42.
Эта связь между переменной и её указателем важна для прямой работы с памятью. Как только у вас есть указатель, хранящий адрес, вы можете использовать его для косвенного доступа к исходной переменной или её изменения.
Задание
ЛегкоСоздайте программу, которая демонстрирует оператор взятия адреса, работая с целочисленной переменной и указателем.
Объявите целочисленную переменную с именем score и инициализируйте её значением 85.
Создайте указатель с именем scorePtr, который хранит адрес памяти переменной score с помощью оператора взятия адреса.
Выведите адрес памяти, хранящийся в указателе, используя следующий формат:
Address: [memory address]Адрес памяти будет отображен в шестнадцатеричном формате (например, 0x7fff5fbff6ac), как C++ обычно показывает адреса памяти.
Шпаргалка
Оператор взятия адреса & используется для получения адреса переменной в памяти:
int number = 42;
int* ptr = &number; // ptr хранит адрес переменной numberКогда вы используете &variable_name, он возвращает местоположение в памяти, где хранится эта переменная. Указатель содержит адрес, а не само значение переменной.
Попробуйте сами
#include <iostream>
using namespace std;
int main() {
// TODO: Напишите свой код ниже
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Указатели и память
Что такое указатель?Оператор взятия адресаОператор разыменованияНулевые указателиУказатели и массивыДинамическая память и 'new'Освобождение памяти и 'delete'Итоги: Практика с указателями2Векторы (динамические массивы)
Знакомство с std::vectorСоздание вектораДобавление элементовДоступ к элементамРазмер вектораИтерация с помощью цикла ForRange-based цикл ForУдаление элементовИтоги: операции с векторами5Проект: Инструмент инвентаризации
Настройка проектаДобавление и обновление товаров