컴퓨터 공학/C, C++
[ C ] 포인터 이해하기2_참조와 역참조/ 역 참조 연산자 *
hahehohoo
2020. 7. 18. 01:00
반응형
참조와 역참조/간접연산자/ 역 참조 연산자 *
포인터는 데이터가 저장된 주소값을 가리킵니다. 이것을 참조라고 합니다.
그럼 역 참조란 무엇일까요?
데이터가 저장된 주소로 가서 값에 접근하는 것을 말합니다.
값에 직접 접근하는게 아니라 주소를 이용해 간접적으로 접근합니다. 그래서 간접(indirect) 연산자라고도 합니다.
이제까지 함수에서 매개변수를 통해 인자를 전달하는 등 모든 데이터를 복사해서 썼다면 '역 참조'를 하면 원본에 접근가능합니다.
즉, 컴퓨터 구조에서(CPU든, 메모리든) 데이터를 오랫동안 메모리에 저장할 수 있습니다.
< 역 참조 원리 >
1 포인터가 저장하고 있는 메모리 위치로 간다
2 그곳에 저장된 값에 접근한다. (= 포인터가 가리키는 값에 접근하다)
역 참조 연산자 *
※ 곱하기 연산자 아닙니다.
- 곱하기 연산자는 피연산자 2개,
- 역 참조 연산자는 피연산자 1개
const int result = num1 * num2; /*곱하기 연산자, 항이 2개임 */
printf("num : %d\n", *num); /* 역참조 연산 */
※ 포인터 변수 선언 연산자도 아닙니다.
역 참조를 이용해 이렇게 값을 변경할 수 있습니다.
int score = 100;
int* pointer = &score; /* 포인터 변수 선언 */
*pointer = 50; /* 역 참조 */
-----------------------------------
-----------------------------------
반응형