본문 바로가기
컴퓨터 공학/C, C++

[ C ] 포인터 이해하기2_참조와 역참조/ 역 참조 연산자 *

by hahehohoo 2020. 7. 18.
반응형

 

참조와 역참조/간접연산자/ 역 참조 연산자 *

 

포인터는 데이터가 저장된 주소값을 가리킵니다. 이것을 참조라고 합니다. 

 

그럼 역 참조란 무엇일까요?

데이터가 저장된 주소로 가서 값에 접근하는 것을 말합니다. 

 

값에 직접 접근하는게 아니라 주소를 이용해 간접적으로 접근합니다. 그래서 간접(indirect) 연산자라고도 합니다. 

이제까지 함수에서 매개변수를 통해 인자를 전달하는 등 모든 데이터를 복사해서 썼다면 '역 참조'를 하면 원본에 접근가능합니다.

즉, 컴퓨터 구조에서(CPU든, 메모리든) 데이터를 오랫동안 메모리에 저장할 수 있습니다. 

 

< 역 참조 원리 >

 

1 포인터가 저장하고 있는 메모리 위치로 간다

2 그곳에 저장된 값에 접근한다. (= 포인터가 가리키는 값에 접근하다)

출처: 포프 C 프로그래밍 강의

 

 


 

역 참조 연산자 *

※ 곱하기 연산자 아닙니다. 

- 곱하기 연산자는 피연산자 2개, 

- 역 참조 연산자는 피연산자 1개

 

const int result = num1 * num2; /*곱하기 연산자, 항이 2개임 */

printf("num : %d\n", *num); /* 역참조 연산 */

 

※ 포인터 변수 선언 연산자도 아닙니다. 

역 참조를 이용해 이렇게 값을 변경할 수 있습니다.

int score = 100;
int* pointer = &score; /* 포인터 변수 선언 */

*pointer = 50;  /* 역 참조 */

 

 

 

 

 

 

-----------------------------------

C언어 문법 총정리

목록 보러가기 

-----------------------------------

 

 

 

 

반응형


댓글