다음 C 프로그램이 구조체 포인터가 가리키는 score를 2 증가시키도록 ①에 들어갈 연산자와 최종 출력 ②를 쓰시오.
#include <stdio.h>
struct Record {
int score;
};
int main(void) {
struct Record item = {10};
struct Record *cursor = &item;
cursor ① score += 2;
printf("%d", item.score);
return 0;
}모범답안
① ->, ② 12
풀이와 판단 근거
cursor는 구조체 자체가 아니라 item의 주소를 보관한다. 구조체 포인터로 멤버에 접근할 때는 화살표 연산자 `->`를 사용하며, `cursor->score`는 `(*cursor).score`와 같다.
score가 10에서 12로 증가하고 같은 item을 printf가 읽으므로 출력은 12다.
자주 틀리는 지점
- 구조체 변수에 직접 쓰는 점 연산자만 단독으로 넣음
- 포인터 주소에 2를 더한다고 해석함
- cursor가 복사본을 가리켜 item.score는 10이라고 판단함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.