강좌 & 팁
글 수 2,412
2014.08.02 12:03:29 (*.192.90.91)
43861
안녕하세요.
포인터 변수가 다른 변수의 메모리 번지에 간접적으로 접근하여 그 변수의 값을 수정하는 방법에 대해 알아보도록 하겠습니다.
#include <stdio.h>
void main()
{
int i = 1000; //1000으로 초기화를 합니다.
int* pi = &i // i의 메모리 번지를 대입받습니다. 즉 1000을 받는 것이죠.
*pi = 5; // i의 메모리 번지에 간접적으로 접근해서 5를 대입합니다.
printf( "%d\n", i); //여기서는 1000이아닌 바로 위함수에서 5를 대입했으니 5가 출력이됩니다.
printf( "%d\n", *pi); // 5가 출력이되고 i==*pi가 성립이됩니다.
위의 함수를 해보면 출력결과는
5
5 로 결과가 나옵니다.
여기서 알아야 할점은 메모리 직접 접근과 간접적으로 접근하는 것인데요. 간단히 알아보도록 하겠습니다.
1. 메모리 직접 접근 : 변수를 통해서 직접 접근을 하는방식
2. 메모리 간접 접근 : 포인터 변수를 사용하여 간접적으로 접근하는 방식