Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

heenam

chapter 18 다차원 배열과 포인터의 관계 본문

[Programming Language]/C

chapter 18 다차원 배열과 포인터의 관계

znzltiq 2020. 3. 18. 02:53

18-1 2차원 배열이름의 포인터 형

 2차원 배열이름이 가리키는 것들은?

  int arr2d[2][3];

  arr2d를 대상으로 sizeof 연산을 하는 경우 배열 전체의 크기를 반환 즉 값은 36가 나옴

  arr2d[0]를 대한으로 sizeof 연산을 하는 경우 각 행의 크기를 반환 즉 값은 12가 나옴

 따라서 arr2d 와 arr2[0]은 같지 않음!!

 배열이름 기반의 포인터: 배열이름에 1을 더한 결과는?

  행과 열이 다르면 포인터 형 값이 달라짐!

 ex) int arr1[3][2];

      int arr2[2][3];

  arr1+1의 값과 arr2+1의 값은 다름!!

 최종결론! 2차원 배열이름의 포인터 형

  대상이 int 형 변수이면서 포인터 연산시 sizeof(int)*4의 크기 단위로 증가 및 감소하는 포인터 변수 ptr을 표현하려면

  int (*ptr) [4];

18-2 2차원 배열이름과 특성과 주의사항

 주의! '배열 포인터'와 '포인터 배열'을 혼돈하지 말자.

  int *whoA[4]; // int형 포인터 변수로 이뤄진 int형 포인터 배열

  int *(whoB)[4]; //가로길이가 4인 int형 2차원 배열을 가리키는 용도의 포인터 변수