| 1์ฐจ์› ๋ฐฐ์—ด ๊ฐ€๋ฆฌํ‚ค๊ธฐ |

- arr++ : ์˜ค๋ฅ˜ ('++'์— l-value๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.)

  โˆต arr์ด ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ์ฃผ์†Œ๊ฐ’ ์ž์ฒด๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด์ง€ ํฌ์ธํ„ฐ๊ฐ€์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅ

 

| ํฌ์ธํ„ฐ์˜ ํฌ์ธํ„ฐ |

ํฌ์ธํ„ฐ ์ •์˜ int **p; =>intํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ

 

*p : p๋ผ๋Š” ํฌ์ธํ„ฐ์— ์žˆ๋Š” ์ฃผ์†Œ์— ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๊ฐ’(๋ฐ์ดํ„ฐ)

 

| ๋ฐฐ์—ด ์ด๋ฆ„์˜ ์ฃผ์†Œ๊ฐ’ |

#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]);
}

&arr : ํฌ๊ธฐ๊ฐ€ 3์ธ ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ( ex. int (*p)[3];๋กœ ์ •์˜ )์— ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋‹ค.

                                                                              โ””> () ์—†์œผ๋ฉด int *p[3]; :ํฌ๊ธฐ๊ฐ€ int* ์›์†Œ(ํฌ์ธํ„ฐ) 3๊ฐœ์ธ ๋ฐฐ์—ด์„ ์ •์˜ ํ•œ ๊ฒƒ(ํฌ์ธํ„ฐ์˜ ๋ฐฐ์—ด).

 

โ€ป C์–ธ์–ด์—์„œ๋Š” ๋ฐฐ์—ด์˜ ์‹œ์ž‘์ ์„ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ(arr)์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋”ฐ๋กœ ์ €์žฅํ•˜์ง€ ์•Š์Œ-> 'arr'์˜ ์ฃผ์†Œ๊ฐ’์€ ์—†์Œ. 

    (B์–ธ์–ด ์—์„œ๋Š” 'arr'์˜ ์ฃผ์†Œ๊ฐ’์„ ๋”ฐ๋กœ ๊ฐ€์กŒ์Œ. ์ฆ‰, arr๊ณผ &arr์ด ๋‹ค๋ฅธ ๊ฐ’ ์ถœ๋ ฅ๋์Œ)

| 2์ฐจ์› ๋ฐฐ์—ด์˜ [ ] ์—ฐ์‚ฐ์ž |

- arr[ ][ ] (2์ฐจ์› ๋ฐฐ์—ด์—์„œ)

   arr[0] ์˜ ๊ฐ’๊ณผ arr[0][0]์˜ ์ฃผ์†Œ๊ฐ’์ด ๊ฐ™๊ณ , arr[1] ์˜ ๊ฐ’๊ณผ arr[1][0]์˜ ์ฃผ์†Œ๊ฐ’์ด ๊ฐ™์Œ.

   ๊ฐ’์€ ๊ฐ™์œผ๋‚˜ ์—„์—ฐํžˆ ๋‹ค๋ฅธ ๊ฒƒ. ์•”๋ฌต์ ์œผ๋กœ ํƒ€์ž… ๋ณ€ํ™˜์‹œ์— ๊ฐ™์€ ํฌ์ธํ„ฐ๋กœ ๋ณ€ํ™˜๋  ๋ฟ์ž„

 

- sizeof arr : ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ๋กœ ๋ณ€ํ™˜๋˜์ง€ ์•Š์Œ

int main() {
  int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
  printf("์ „์ฒด ํฌ๊ธฐ : %d \n", sizeof(arr));
  printf("์ด ์—ด์˜ ๊ฐœ์ˆ˜ : %d \n", sizeof(arr[0]) / sizeof(arr[0][0]));
  printf("์ด ํ–‰์˜ ๊ฐœ์ˆ˜ : %d \n", sizeof(arr) / sizeof(arr[0]));
}

  sizeof(arr) : arr๋ผ๋Š” ๋ฐฐ์—ด์˜ ์ „์ฒด ํฌ๊ธฐ = ์›์†Œ ์ˆ˜ * ํ•œ ์›์†Œ์˜ ํฌ๊ธฐ(32bit์—์„œ๋Š” 4byte)

  sizeof(arr[0]) : arr[0] ๋ฐฐ์—ด์˜ ํฌ๊ธฐ. ๋งˆ์น˜ ์ผ์ฐจ ๋ฐฐ์—ด๊ฐ™์ด..(arr[0][0]~arr[0][3])

  sizeof(arr[0][0]) : ์›์†Œ arr[0][0]  1๊ฐœ์˜ ์˜ ํฌ๊ธฐ 

  => sizeof ์—ฐ์‚ฐ์ž๋กœ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ

* 2์ฐจ์› ๋ฐฐ์—ด์—์„œ arr[ํ–‰์˜ ๊ฐœ์ˆ˜][์—ด์˜ ๊ฐœ์ˆ˜];

 

- arr[0][0]์˜ ํ˜•์ด int์ด๋ฏ€๋กœ ์ด๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ์ฃผ์†Œ ๊ฐ’์ด ๋˜๋Š” arr[0]์€ int*ํ˜•์ด ๋จ

  arr[1][0]์˜ ํ˜•๋„ int์ด๋ฏ€๋กœ ์ด๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ์ฃผ์†Œ ๊ฐ’์ด ๋˜๋Š” arr[1]์—ญ์‹œ int*ํ˜• ์ž„.

- int** ํ˜• ํฌ์ธํ„ฐ๋Š” ๋ฐฐ์—ด์˜ ์ด๋ฆ„์„ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์—†์Œ,(๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด int** ํ˜• ํฌ์ธํ„ฐ๋กœ ๋ฐฐ์—ด์˜ ์›์†Œ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ ํ•˜๊ฒ ์ง€...)

 

| ํฌ์ธํ„ฐ์˜ ํ˜•(type)์„ ๊ฒฐ์ •์ง“๋Š” ๋‘ ๊ฐ€์ง€ ์š”์†Œ |

*ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด 2์ฐจ์› ๋ฐฐ์—ด์˜ ์›์†Œ์— ์ ‘๊ทผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด์˜ '์—ด์˜ ๊ฐฏ์ˆ˜'์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์–ด์•ผํ•จ.

ex) arr[a][b]๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ(parr)๋กœ arr[x][y] ์›์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์€ 'arr + 4bx + 4y'์™€ ๊ฐ™์Œ.

๋”ฐ๋ผ์„œ, 2์ฐจ์› ๋ฐฐ์—ด์˜ ํฌ์ธํ„ฐ๋Š” ์—ด์˜ ๊ฐฏ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด

int (*parr)[3]; /* intํ˜• ์ด์ฐจ์› ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋Š”๋ฐ, ๊ทธ ๋ฐฐ์—ด ํ•œ ํ–‰์˜ ๊ธธ์ด(์—ด์˜ ๊ฐฏ์ˆ˜)๊ฐ€ 3์ž„ */

๋ฐฐ์—ด์˜ํ˜• (*ํฌ์ธํ„ฐ์ด๋ฆ„)[2์ฐจ์›๋ฐฐ์—ด์˜ ์—ด ๊ฐฏ์ˆ˜]; ๋กœ ์ •์˜ํ•œ๋‹ค.

    => ์—ฌ๊ธฐ์„œ parr์€ ์—ด์˜ ๊ฐฏ์ˆ˜๊ฐ€ 3์ธ ๋ฐฐ์—ด๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ex) arr[50][3] ๊ฐ€๋Šฅ, brr[50][2] ๋ถˆ๊ฐ€๋Šฅ

 

 

 

๋ฐ˜์‘ํ˜•

+ Recent posts