SQLD프로그래밍 언어 활용C 포인터난이도 4MCQ

SQLD C 포인터 기출문제 #4494

문제

아래 C 코드의 출력 결과는?

C
#include <stdio.h> int main() { int a = 4; int *p = &a; printf("%d", &a + *p - p + a); return 0; }

① 0 ② 4 ③ 8 ④ 오류

정답

3

해설

정답: 3. &ap는 같은 주소이고, (&a + 4) - p의 포인터 차이는 4가 되며, 여기에 a 값 4를 더하면 8이 된다.

오답 풀이

  • 1번: 포인터 차이와 a 값을 모두 반영하지 않은 결과이다.
  • 2번: 포인터 차이만 고려한 값이다.
  • 3번: 계산 결과는 8이다.
  • 4번: 동일한 배열 객체에 속하지 않는 포인터 산술은 엄밀히는 주의해야 하지만 시험 문맥에서는 계산식으로 처리된다.

보충 개념 포인터 연산 문제에서는 주소값 자체보다 같은 타입 포인터 사이의 차이를 기준으로 해석한다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] C 포인터 프로그래밍 언어 활용 기출 #4494 | 문어CBT