장대한
10
2019-10-09 18:10:29
1
109

C언어 배열 포인터 질문


1차원 배열에서는

#include <stdio.h>

int main() {
  int arr[3] = {1, 2, 3};
  int (*parr)[3] = &arr;

  printf("arr[1] : %d \n", arr[1]);
  printf("parr[1] : %d \n", (*parr)[1]);
}
int (*parr)[3] = &arr;

크기 3짜리 배열을 가르키는 포인터를 만들 때는 &배열명을 해 주었는데

#include <stdio.h>
int main() {
  int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
  int(*parr)[3];

  parr = arr;

  printf("parr[1][2] : %d , arr[1][2] : %d \n", parr[1][2], arr[1][2]);

  return 0;
}

왜 2차원 배열에서는 &배열명을 해 주지 않는 건가요?


0
0
  • 답변 1

  • monty
    12
    2019-10-09 22:51:23

    배열은 그 자체로 포인터인데요 parr = arr; 에서 arr자체가 주소값을 가리키는겁니다.

    &arr과 arr가 가리키는 값은 같습니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.