2022년04월24일 79번
[프로그래밍 언어 활용] a[0]의 주소값이 10일 경우 다음 C언어 프로그램이 실행되었을 때의 결과는? (단, int 형의 크기는 4Byte로 가정한다.)

- ① 14, 10
- ② 14, 14
- ③ 18, 10
- ④ 18, 14
(정답률: 35%)
문제 해설
정답 : ③
C언어에서 배열은 같은 자료형의 요소가 메모리에 연속으로 할당되며, int형은 4Byte이므로 각 배열 요소는 4Byte 간격으로 주소값을 가진다. a[0]의 시작 주소가 10인 경우, 핵심 규칙과 실행 결과 계산은 다음과 같다.
1. 배열 요소별 시작 주소 계산배열 요소의 시작 주소 = a[0] 주소 + 인덱스 × sizeof(int)
a[0]: 10 (시작 주소, 문제에서 제시)a[1]: 10 + 1×4 = 14a[2]: 10 + 2×4 = 18a[3]: 10 + 3×4 = 22
2. C언어 배열 주소 관련 핵심 규칙
&a[n]: 배열의 n번째 요소 시작 주소를 반환 (각 요소의 첫 바이트 주소)- 배열명
a: 배열의 첫 번째 요소(a[0]) 시작 주소를 상수로 반환 (별도 주소 연산 없을 시) %u: 부호 없는 10진수로 주소값을 출력하는 형식 지정자
3. 프로그램 실행 결과 계산
printf("%u, ", &a[2]);:a[2]의 시작 주소인 18을 출력printf("%u", a);: 배열명이 가리키는a[0]의 시작 주소인 10을 출력→ 최종 실행 결과 :18, 10
[해설작성자 : www.cbtestpro.kr]
연도별
진행 상황
0 오답
0 정답