다음 C언어 코드에 대한 알맞는 출력값을 쓰시오.
#include
int main(){
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
printf("%dn", *arr[1] + **arr + 1);
}
1. 포인터 배열 초기화
- arr는 포인터 배열이며, 각 요소는 정수형 변수의 주소를 가리킵니다.
- 다음과 같이 초기화됩니다:
- arr[0] → &a (a의 주소)
- arr[1] → &b (b의 주소)
- arr[2] → &c (c의 주소)
각 표현의 의미
- *arr[1]:
- arr[1]은 &b를 가리키고 있으므로, *arr[1]은 b의 값을 가져옵니다.
- b의 값은 24입니다.
- **arr:
- arr의 첫 번째 요소는 &a이므로, *arr은 arr[0], 즉 &a를 가리킵니다.
- **arr은 *(&a)로, a의 값을 가져옵니다.
- a의 값은 12입니다.
- 계산식:
- 따라서, *arr[1] + **arr + 1의 계산은 다음과 같습니다:
- 24 + 12 + 1
- = 37.
3. 최종 출력
- 따라서, printf("%d\n", *arr[1] + **arr + 1);의 결과는 37입니다.