문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> typedef struct { int key; double value; } Record; int main() { Record data[4] = {{10, 2.5}, {20, 1.5}, {30, 3.0}, {40, 0.5}}; Record *base = &data[1]; double output = base[-1].value + base[1].value + base[0].value; printf("%.1f", output); return 0; }
정답
7.0
7.0
해설
base는 data[1]을 가리킨다. base[-1]은 data[0]이므로 value는 2.5, base[1]은 data[2]이므로 value는 3.0, base[0]은 data[1]이므로 value는 1.5이다. 따라서 2.5 + 3.0 + 1.5 = 7.0이다.