카테고리 없음

[C언어] 213-12

codecodekode 2024. 10. 19. 11:05

다음 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의 주소)

각 표현의 의미

  1. *arr[1]:
    • arr[1]은 &b를 가리키고 있으므로, *arr[1]은 b의 값을 가져옵니다.
    • b의 값은 24입니다.
  2. **arr:
    • arr의 첫 번째 요소는 &a이므로, *arr은 arr[0], 즉 &a를 가리킵니다.
    • **arr은 *(&a)로, a의 값을 가져옵니다.
    • a의 값은 12입니다.
  3. 계산식:
    • 따라서, *arr[1] + **arr + 1의 계산은 다음과 같습니다:
    • 24 + 12 + 1
    • = 37.

3. 최종 출력

  • 따라서, printf("%d\n", *arr[1] + **arr + 1);의 결과는 37입니다.