문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> typedef struct { char name; int value; } Data; int main() { Data list[4] = {{'A', 10}, {'B', 20}, {'C', 30}, {'D', 40}}; Data *ptr = &list[1]; int sum = 0; for (int j = 0; j < 3; j++) { sum += ptr[j].value; } printf("%d", sum); return 0; }
정답
90
90
해설
구조체 배열에서 포인터 ptr은 list[1]을 가리킨다. 반복문에서 ptr[0]은 list[1] (value=20), ptr[1]은 list[2] (value=30), ptr[2]는 list[3] (value=40)을 의미한다. 따라서 sum = 20 + 30 + 40 = 90이다.