프로그래밍 일반사무자동화산업기사 · 2017년09월23일 · 53/80
53.C언어에서 포인터를 사용하여 두 변수 a, b의 값을 교체하는 경우 빈칸에 알맞은 코드는?

1
b = &a;
2
a = b;
3
*pb = *pa;
4
*pa = *pb;정답
해설
&는 주소를, *는 변수 선언시엔 포인터 변수임을 의미하고 그 외엔 해당 주소에 있는 값을 의미한다. 따라서 &a, &b : 변수 a의 주소, 변수 b의 주소 int *pa = &a : pa라는 int형 포인터 변수를 생성하고 a의 주소값을 저장 temp = *pa : temp에 pa라는 주소에 있는 변수값을 저장 으로 해석할 수 있다. a값과 b값을 교체하는 과정 : 1.a값을 우선 임시로 temp에 저장한 후 2.[ b값을 a에 저장하고 ] 3.temp에 저장되어있던 a값을 b에 저장한다. 1. temp = *pa => temp=10, a=10, b=20 (a값을 우선 temp에 저장함) 2. [ *pa = * pb ] => temp=10, a=20, b=20 (b값을 a에 저장함) 3. *pb = temp => temp=10, a=20, b=10 (temp에 저장되어있던 a값을 b에 저장하여 교체를 완료)