역참조 연산자
Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 3번째.
이제 역참조 연산자(dereference operator)를 사용하여 포인터(pointer)를 통해 원본 변수(variable)를 수정할 수도 있습니다. 이러한 간접 접근 방식이 포인터를 강력하게 만드는 이유입니다. 포인터만 있다면 프로그램의 어느 곳에서나 변수를 읽고 수정할 수 있습니다.
variable의 pointer를 얻을 수 있으므로, 해당 메모리 address에 있는 값을 액세스하고 수정하는 방법을 배워야 합니다. 여기서 dereference 연산자(*)가 becomes 필수적인 요소가 됩니다.역참조 연산자 *는 포인터가 가리키고 있는 메모리 주소에 저장된 값에 접근하는 데 사용됩니다. 포인터 변수 앞에 *를 붙이면, 해당 주소를 "따라가서" 그곳에 저장된 실제 값을 가져옵니다.주소 연산자(&)는 변수의 메모리 주소를 얻는 데 사용되며, 역참조(dereference) 연산자(*)는 해당 주소에 있는 값에 접근하는 데 사용된다는 점을 기억하세요.int number = 42;
int* ptr = &number; // ptr은 number의 주소를 저장합니다
int value = *ptr; // value는 이제 42를 포함합니다*ptr에 새 값을 할당하면 해당 메모리 위치에 저장된 값이 실제로 변경됩니다:*ptr = 100; // number를 100으로 변경합니다
// number는 이제 100입니다. ptr을 통해 수정했음에도 불구하고챌린지
쉬움포인터를 통해 변수 값을 수정하여 역참조(dereference) 연산자를 시연하는 프로그램을 작성하세요.
다음과 같은 입력이 제공됩니다:
- 변수의 초기값을 나타내는 정수
- 포인터를 통해 새로 할당할 값을 나타내는 정수
작성할 프로그램은 다음을 수행해야 합니다:
temperature라는 이름의 정수형 변수를 선언하고 첫 번째 입력 값으로 초기화합니다.temperature변수를 가리키는tempPtr이라는 이름의 포인터를 생성합니다.- 포인터를 역참조하여 원래 값을 출력합니다.
- 역참조 연산자를 사용하여 포인터를 통해
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. temperature를 가리키는 tempPtr 포인터를 생성하세요
// 3. Print original value using pointer dereference
// 4. 포인터를 통해 newValue를 사용하여 temperature 값을 변경하세요
// 5. 포인터 역참조를 사용하여 새 값을 출력하세요
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.