문제
다음 C 코드의 출력 결과는?
① 3 그리고 4 ② 5 그리고 6 ③ 1 그리고 2 ④ 5 그리고 4
정답
2번
해설
정답: 2. (*pptr)[1] = (*pptr)[2]는 a[2]의 구조체 값을 a[1]에 복사하므로 a[1]은 {5, 6}이 된다.
오답 풀이
- 1번: 대입 전 a[1]의 값이다.
- 2번: a[2]가 a[1]로 복사된 결과이다.
- 3번: a[0]의 값이다.
- 4번: x만 복사된다고 잘못 본 결과이다.
보충 개념
C에서 구조체 대입은 멤버 값을 통째로 복사한다. 포인터 배열 접근식 (*pptr)[i]는 ptr이 가리키는 배열의 i번째 원소를 의미한다.