Оператор разыменования
Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 3 из 56.
Теперь, когда вы можете получить pointer на variable, вам нужно узнать, как получать доступ к значению по этому memory address и изменять его. Именно здесь оператор dereference (Вы также можете использовать оператор dereference, чтобы изменить original variable through pointer. Когда вы присваиваете новое значение Этот косвенный доступ — это то, что делает указатели настолько мощными: вы можете читать и изменять переменные из любого места вашей программы, пока у вас есть `pointer` на них.
*) becomes необходимым.Оператор dereference * используется для доступа к значению, хранящемуся по memory address, на который pointing pointer. Когда вы помещаете * перед pointer variable, он «следует» по address и дает вам фактическое значение, хранящееся там.Помните, что оператор взятия адреса (&) используется для получения адреса памяти переменной, в то время как оператор разыменования (*) используется для доступа к значению по этому адресу.int number = 42;
int* ptr = &number; // ptr хранит адрес number
int value = *ptr; // value теперь содержит 42*ptr, вы на самом деле изменяете значение, хранящееся в этой ячейке памяти:*ptr = 100; // Изменяет number на 100
// number теперь 100, даже хотя мы изменили его через ptrЗадание
ЛегкоСоздайте программу, которая демонстрирует работу оператора разыменования путем изменения значения переменной через указатель.
Будут предоставлены следующие входные данные:
- Целое число, представляющее начальное значение переменной
- Целое число, представляющее новое значение для присвоения через указатель
Ваша программа должна:
- Объявить целочисленную переменную с именем
temperatureи инициализировать ее первым введенным значением - Создать указатель с именем
tempPtr, который указывает на переменнуюtemperature - Вывести исходное значение, разыменовав указатель
- Использовать оператор разыменования, чтобы изменить значение
temperatureна второе введенное значение через указатель - Снова вывести новое значение, разыменовав указатель
Используйте следующий точный формат вывода:
Original value: [original value]
New value: [new value]Попробуйте сами
#include <iostream>
using namespace std;
int main() {
// Считать входные значения
int initialValue, newValue;
cin >> initialValue;
cin >> newValue;
// TODO: Напишите ваш код ниже
// 1. Объявите переменную temperature и инициализируйте её значением initialValue
// 2. Создайте указатель tempPtr, указывающий на temperature
// 3. Print original value using pointer dereference
// 4. Измените значение temperature через указатель, используя newValue
// 5. Выведите новое значение, используя разыменование указателя
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Указатели и память
Что такое указатель?Оператор взятия адресаОператор разыменованияНулевые указателиУказатели и массивыДинамическая память и 'new'Освобождение памяти и 'delete'Итоги: Практика с указателями2Векторы (динамические массивы)
Знакомство с std::vectorСоздание вектораДобавление элементовДоступ к элементамРазмер вектораИтерация с помощью цикла ForRange-based цикл ForУдаление элементовИтоги: операции с векторами5Проект: Инструмент инвентаризации
Настройка проектаДобавление и обновление товаров