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

SQLD C 포인터 기출문제 #4194

문제

아래 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 포인터 프로그래밍 언어 활용 기출 #4194 | 문어CBT