C์ธ์ด์์ ํฌ์ธํฐ๋ ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ๋ณ์์ด๋ค. ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ๋ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋์ด ์์ผ๋ฉฐ, ์ด ๋์ ์ฐ๊ฒฐ์ง์ด ์ดํดํ๋ฉด C์ธ์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํ ๊น์ ์ดํด๋ฅผ ์ป์ ์ ์๋ค. ์ด๋ฒ์๋ ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ์ ๋ํด ์ค๋ช ํ๋ค.
โญ1. ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ
โโC์ธ์ด์์ ๋ฐฐ์ด ์ด๋ฆ์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ก ์ฌ์ฉ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, int numbers[5]; ๋ฐฐ์ด์ด ์๋ค๋ฉด, numbers๋ &numbers[0]์ ๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๊ฒ์ ๋ฐฐ์ด์ ์ด๋ฆ์ด ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ก ๋์ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
int numbers[5] = {10, 20, 30, 40, 50};
int *p = numbers; // ๋๋ &numbers[0]
printf("%d\n", *p); // 10 ์ถ๋ ฅ
โญ2. ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ ๋ฐฐ์ด ์ ๊ทผ
๋น๋ก ๋ฐฐ์ด ์ด๋ฆ์ด ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ฒ๋ผ ๋์ํ์ง๋ง, ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ๋ ๋ช ๊ฐ์ง ์ค์ํ ์ฐจ์ด์ ์ด ์๋ค.
2.1. ํ์
๊ณผ ํฌ๊ธฐ: ๋ฐฐ์ด ์ด๋ฆ์ ๋ฐฐ์ด์ ํ์
๊ณผ ํฌ๊ธฐ ์ ๋ณด๋ฅผ ๋ดํฌํ๊ณ ์๋ค. ๋ฐ๋ฉด์ ํฌ์ธํฐ๋ ๋จ์ง ์ฃผ์๋ฅผ ์ ์ฅํ๋ฉฐ, ๊ฐ๋ฆฌํค๋ ๋ณ์์ ํ์
๋ง ์๊ณ ์๋ค.
2.2. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ: ๋ฐฐ์ด ์ด๋ฆ์ ์์ ํฌ์ธํฐ์ฒ๋ผ ๋์ํ์ฌ, ๊ทธ ๊ฐ์ ๋ค๋ฅธ ์ฃผ์๋ก ๋ณ๊ฒฝํ ์ ์๋ค. ๋ฐ๋ฉด์ ํฌ์ธํฐ ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ด์, ๋ค๋ฅธ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํ ์ ์๋ค.
โญ3. ํฌ์ธํฐ์ ๋ฐฐ์ด์ ์ฌ์ฉ
ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์์์ ๋ฐฐ์ด์ ํจ์จ์ ์ผ๋ก ๋ค๋ฃฐ ์ ์๋ค. ํจ์์ ๋ฐฐ์ด์ ์ธ์๋ก ์ ๋ฌํ ๋, ๋ฐฐ์ด์ ํฌ๊ธฐ ์ ๋ณด๋ ์ ๋ฌ๋์ง ์๋๋ค. ํ์ง๋ง ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ ํน์ ์์์ ์ ๊ทผํ๊ฑฐ๋ ๋ฐฐ์ด์ ์ํํ ์ ์๋ค.
void printArray(int *array, int size) {
for(int i = 0; i < size; i++) {
printf("%d ", *(array + i));
}
printf("\n");
}
int main() {
int numbers[] = {1, 2, 3, 4, 5};
printArray(numbers, 5);
return 0;
}
C์ธ์ด์์ ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ๋ ๊น์ผ๋ฉฐ, ์ด ๋์ ์ดํดํ๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๊ณผ ์กฐ์์ ์์ด์ ์ค์ํ๋ค. ๋ฐฐ์ด ์ด๋ฆ์ด ํฌ์ธํฐ์ฒ๋ผ ๋์ํ๋ค๋ ์ ๊ณผ ํฌ์ธํฐ ์ฐ์ฐ์ ํตํด ๋ฐฐ์ด ์์์ ์ ๊ทผํ ์ ์๋ค๋ ์ ์ ํนํ ์ ์ฉํ๋ค. ํ์ง๋ง, ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ๊ฐ ์์ ํ ๊ฐ์ง๋ ์์ผ๋ฉฐ, ์ด๋ค ์ฌ์ด์ ์ฐจ์ด์ ์ ์ดํดํ๋ ๊ฒ๋ ์ค์ํ๋ค.
'๐ท C์ธ์ด 30๊ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C/C++ Tip] 10. Call by Value vs Call by Reference (0) | 2024.09.14 |
---|---|
[C/C++ Tip] 9. memset, memcpy (0) | 2024.09.08 |
[C/C++ Tip] 7. ๋ฐฐ์ด์ ๊ธฐ์ด (1) | 2024.09.04 |
[C/C++ Tip] 6. UNION ๊ณต์ฉ์ฒด์ STRUCT ๊ตฌ์กฐ์ฒด๋ก ํจํท ๋ง๋ค๊ธฐ (2) | 2024.09.04 |
[C/C++ Tip] 5. ๊ตฌ์กฐ์ฒด ํจ๋ฉ์ ํ์์ฑ (0) | 2024.09.04 |