문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> int main() { char str[] = "COMPUTER"; char *p1 = str + 3; char *p2 = &str[1]; printf("%c%c%c", *(p1 - 2), *(p2 + 4), *(p1 + 1)); return 0; }
정답
OTU
OTU
해설
p1 = str + 3 이므로 p1은 str[3]인 'P'를 가리킨다. p2 = &str[1] 이므로 p2는 str[1]인 'O'를 가리킨다. *(p1 - 2) = str[1] = 'O' *(p2 + 4) = str[5] = 'T' *(p1 + 1) = str[4] = 'U'
따라서 출력 결과는 OTU이다.