컴퓨터 사이언스/C언어
[C언어] 포인터가 가리키는 메모리를 참조하는 * 연산자 예제
메리뉴데이
2020. 8. 10. 07:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <stdio.h>
int main(void) {
int num1 = 100, num2 = 100; // 변수 num1과 num2를 선언하고 각각 100으로 초기화
int * ptr; // 포인터 변수 ptr을 선언
ptr = &num1; // 포인터 ptr이 num1을 가리키게 함
(*ptr) += 20; // num1 += 20 과 동일
ptr = &num2; // 포인터 ptr이 num2를 가리키게 함
(*ptr) -= 20; // num2 -= 20과 동일
return 0;
}
|
cs |
이 소스코드에서
num1은 100에서 20이 증가된 120으로 다시 저장되고,
num2는 100에서 20이 감소된 80으로 다시 저장되게 된다.
여기서의 핵심은,
ptr이 포인터로서 각각의 변수를 가리키면서 * 연산자를 통하여 가리키고 있는 변수의 메모리에 접근하여
*ptr이 가르키고 있는 변수 num1과 num2와 같이 쓰였다는 것이다.
더불어 한 포인터가 가리키는 변수를 변경(num1->num2) 할 수 있다.