C 언어 기초

int는 4바이트, 포인터는 8바이트로 한다. int형에 대한 포인터 p의 값(주소)이 0x1000일 때, p + 3의 값은?

  1. A0x100C
  2. B0x1012
  3. C0x1018
정답과 해설 보기

정답: A. 0x100C

포인터에 정수를 더하면 가리키는 형의 크기를 단위로 하여 나아갑니다. int는 4바이트이므로 p + 3은 3 × 4 = 12바이트 앞, 즉 0x1000 + 0xC = 0x100C를 가리킵니다. p + 3은 배열 요소 p[3]의 주소이며, *(p + 3)과 p[3]은 같은 의미입니다. char형에 대한 포인터라면 1바이트씩, double형(8바이트)에 대한 포인터라면 8바이트씩 나아갑니다.

이 분야 연습하기 분야로 돌아가기

C 언어 기초의 다른 문제

  1. int는 4바이트, 포인터는 8바이트로 한다. 위의 프로그램을 실행했을 때의 출력으로 올바른 것은?
  2. int는 4바이트로 한다. 위의 코드를 실행했을 때의 출력으로 올바른 것은?
  3. 문자열을 넣은 char 배열에 대해, 위의 코드를 실행했을 때의 출력으로 올바른 것은?
  4. 위의 선언 다음에 ㄱ "p = t;", ㄴ "*p = 'x';", ㄷ "q = t;", ㄹ "*q = 'x';" 중 하나를 쓴다. 컴파일 오류가 되는 것의 조합은?
  5. 함수 포인터 배열을 사용한 위의 프로그램을 실행했을 때의 출력으로 올바른 것은?