리틀 엔디안 시스템에서 다음 C 프로그램의 출력 결과는? (단, int는 4바이트이고 union의 두 배열은 같은 8바이트 저장 공간을 공유한다.)
#include <stdio.h>
int main(void) {
char i;
union { int int_arr[2]; char char_arr[8]; } endian;
for (i = 0; i < 8; i++) endian.char_arr[i] = i + 16;
printf("%x", endian.int_arr[1]);
return 0;
}ITPASSLAB 재구성 문제 자료
크게 보기 ↗
크게 보기 ↗정답 4번
char_arr에는 10진수 16~23, 즉 16진수 10 11 12 13 14 15 16 17이 낮은 주소부터 저장된다. int_arr[1]이 읽는 바이트는 14 15 16 17이고 리틀 엔디안에서는 마지막 바이트가 최상위가 되어 0x17161514다. %x는 17161514를 출력한다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 자동 검사 완료
- 해설 작성·검수
- 정처LAB 자동 검사
- 최종 검수
- 자동 검사 완료