๋ฐฐ์ด์ ํจ์์ ์ธ์๋ก ์ ๋ฌํ๋ ์๋ฆฌ์ ํจ์ ํธ์ถ ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ณํ๋ฅผ ์๊ฐ์ ์ผ๋ก ์ดํด๋ณด๊ณ , ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
๋ฐฐ์ด์ ํจ์์ ์ธ์๋ก ์ ๋ฌํ๊ธฐ
C์ธ์ด์์ ๋ฐฐ์ด์ ํจ์์ ์ ๋ฌ์ธ์๋ก ์ฌ์ฉํ ๋, ๋ฐฐ์ด ์์ฒด๊ฐ ์๋ ๋ฐฐ์ด์ ์ฃผ์๊ฐ์ ์ ๋ฌํฉ๋๋ค. ์ด๋, ํจ์์์ ๋ฐฐ์ด์ ์ธ์๋ฅผ ๋ฐ๊ธฐ ์ํด์๋ ํฌ์ธํฐ ํ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค.
๐ ๋ฐฐ์ด์ ์ ๋ฌ์ธ์๋ก ์ฌ์ฉํ๋ ์ด์
- ํจ์จ์ฑ: ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ปค์ง ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ชจ๋ ๋ณต์ฌํ์ฌ ์ ๋ฌํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ์ด ๋ญ๋น๋ฉ๋๋ค.
- ๋จ์ํ: ๋ฐฐ์ด์ ์ ๋ฌํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๋ฒ์ ํจ์๋ก ์ ๋ฌํ ์ ์์ด ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
- ๋ฐฐ์ด์ ํน์ฑ ํ์ฉ: "๋ฐฐ์ด์ ์ด๋ฆ์ ํฌ์ธํฐ์ด๋ค." ๋ผ๋ ํน์ง ๋๋ถ์ ๋ฐฐ์ด์ ์ฃผ์๊ฐ๋ง์ผ๋ก ์ฐธ์กฐํ ์ ์์ต๋๋ค.
๋ฌธ์ ์ :
1~2๊ฐ์ ๊ฐ์ด๋ผ๋ฉด ๊ฐ๋ณ ์ธ์๋ก ์ ๋ฌํด๋ ๊ด์ฐฎ์ง๋ง, ๊ฐ์ ๊ฐ์๊ฐ ๋ง์์ง์๋ก ์ ๋ฌ๋ฐฉ์์ด ๋ณต์กํด์ง๊ณ ์ฝ๋๊ฐ ๋์กํด์ง๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐฐ์ด์ ์ ๋ฌํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์๋ ๋ด์ฉ์ ๊ธฐ๋ณธ์ ์ธ ํจ์์ ์ธ์ ์ ๋ฌ๋ถํฐ ๋ฐฐ์ด ์ ๋ฌ ์๋์๋ฆฌ์ ๋ํด ์์ ์ฝ๋ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค.
1. ๊ธฐ๋ณธ์ ์ธ ํจ์์ ์ธ์ ์ ๋ฌ ํํ : ๊ฐ ๋ณต์ฌ ๋ฐฉ์
์ฌ๊ธฐ์ ํจ์์ ๊ธฐ๋ณธ์ ์ธ ์ธ์ ์ ๋ฌ ๋ฐฉ์์ ๊ฐ ๋ณต์ฌ์ ๋๋ค. ์ฆ, ์ค ๋งค๊ฐ๋ณ์(Argument)์ ๊ฐ์ ํจ์์ ํ์ ๋งค๊ฐ๋ณ์(Parameter)๋ก ๋ณต์ฌํ์ฌ ์ ๋ฌํฉ๋๋ค. ์ด๋, ๋ณต์ฌ๋ ๊ฐ์ ํ์ ๋งค๊ฐ๋ณ์์ ๋ณ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋๋ฉฐ, ์ค๋งค๊ฐ๋ณ์์ ํ์ ๋งค๊ฐ๋ณ์๋ ์๋ก ๋ ๋ฆฝ์ ์ ๋๋ค.
๐ ํจ์์ ์ธ์ ์ ๋ฌ ํํ
- ์ค๋งค๊ฐ๋ณ์(a)์ ํ์๋งค๊ฐ๋ณ์(b)์ ๊ด๊ณ
- a = 10 ์ ๊ฐ์ด ํจ์ Temp()์ ํ์ ๋งค๊ฐ๋ณ์ b๋ก ๋ณต์ฌ๋ฉ๋๋ค.
- ๋ณต์ฌ ์ดํ a์ b๋ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
- a์ ๊ฐ์ ๋ณ๊ฒฝํด๋ b์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉฐ ๋ฐ๋๋ก b๋ฅผ ๋ณ๊ฒฝํด๋ a๋ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ์ค๋ช
- ๊ทธ๋ฆผ์์ a๋ ๋งค๊ฐ๋ณ์๋ก, ๊ฐ 10์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง๋๋ค.
- Temp(a)๋ฅผ ํธ์ถํ๋ฉด a์ ๊ฐ์ธ 10์ด ๋ณต์ฌ๋์ด b์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ฐ๋ง ๋ณต์ฌ๋๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๊ณต์ ํ์ง ์์ต๋๋ค.
์ฝ๋ ์์ : ๊ฐ ๋ณต์ฌ ๋ฐฉ์ ํ์ธ
์ถ๋ ฅ๊ฒฐ๊ณผ:
ํ์ ๋งค๊ฐ๋ณ์ b์ ๊ฐ: 20
์ค๋งค๊ฐ๋ณ์ a์ ๊ฐ: 10
๊ฒฐ๊ณผ์์ ์ ์ ์๋ ์
- ํจ์ ํธ์ถ ์ a์ ๊ฐ์ด b๋ก ๋ณต์ฌ๋์์ง๋ง, Temp() ํจ์ ๋ด์์ b์ ๊ฐ์ ๋ณ๊ฒฝํด๋ a๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค.
- ์ด๋ ์ค๋งค๊ฐ๋ณ์์ ํ์ ๋งค๊ฐ๋ณ์๊ฐ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๐ซง ์ ๋ฆฌ
- ๊ธฐ๋ณธ์ ์ธ ํจ์์ ์ธ์ ์ ๋ฌ ๋ฐฉ์์ ๊ฐ ๋ณต์ฌ๋ก ์ค๋งค๊ฐ๋ณ์์ ๊ฐ์ ํ์ ๋งค๊ฐ๋ณ์์ ๋ณต์ฌํ์ฌ ์ ๋ฌํฉ๋๋ค.
- ์ค๋งค๊ฐ๋ณ์์ ํ์ ๋งค๊ฐ๋ณ์๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ฏ๋ก ๋ ๋ฆฝ์ฑ์ ์ ์งํ ์ ์์ง๋ง, ๊ฐ ์ ๋ฌ์ ๋นํจ์จ์ฑ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ฐธ์กฐ ์ ๋ฌ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ํจ๊ป ๊ณ ๋ คํด์ผํฉ๋๋ค.
2. ์ฝ๋ ์์ : ๋ฐฐ์ด ์ ๋ฌ ๋ฐ ํฌ์ธํฐ ์ฒ๋ฆฌ
์ด๋ป๊ฒ ๋ฐฐ์ด์ ์ ๋ฌํ๊ณ ๋ฐ์ ๊ฒ์ธ๊ฐ? ๋ฐ๋ก ํฌ์ธํฐ์ ๋๋ค.
"๋ฐฐ์ด์ ์ด๋ฆ์ ํฌ์ธํฐ์ด๋ค." ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ๋ ํํ๋ง ๋ค๋ฅผ ๋ฟ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
์ฝ๋ ์์ : ๋ฐฐ์ด ์ ๋ฌ ๋ฐ ํฌ์ธํฐ๋ก ์ฒ๋ฆฌ
์ด ์ฝ๋๋ ๋ฐฐ์ด์ ์์๋ค์ ๋ชจ๋ ๋ํ ํฉ๊ณ๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. ํจ์ func()๋ ๋ฐฐ์ด์ ํฌ์ธํฐ์ ํฌ๊ธฐ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์์ ๋ฐฐ์ด์ ์ดํฉ์ ๋ฐํํฉ๋๋ค.
#include <stdio.h>
// ๋ฐฐ์ดํ์ ์ธ์๋ ํฌ์ธํฐํ์ผ๋ก ๋ฐ๋๋ค.
int func(int* pArr, int size);
int main(void)
{
int arr[] = { 1,2,3,4,5 }; // ๋ฐฐ์ด ์ ์ธ ๋ฐ ์ด๊ธฐํ
int sumArr, sizeArr;
sizeArr = sizeof(arr) / sizeof(int); // ๋ฐฐ์ด์ ํฌ๊ธฐ ๊ณ์ฐ
sumArr = func(arr, sizeArr); // ๋ฐฐ์ด๊ณผ ํฌ๊ธฐ๋ฅผ ์ ๋ฌ
printf("๋ฐฐ์ด์ ์ด ํฉ์:%d\n", sumArr);
return 0;
}
int func(int* pArr, int size)
{
int i, sum = 0;
for (i = 0; i < size; i++)
{
//sum += pArr[i]; ๋ฐฐ์ด ํ๊ธฐ๋ฒ
sum += *(pArr + i); // ํฌ์ธํฐ ์ฐ์ฐ์ ํตํด ๋ฐฐ์ด ์์ ์ ๊ทผ
}
return sum; // ๋ฐฐ์ด ์์์ ์ดํฉ ๋ฐํ
}
๐ ๋ฐฐ์ด ์ ๋ฌ์ ์๋ ์๋ฆฌ
- ๋ฐฐ์ด์ ์ฃผ์๊ฐ์ ์ ๋ฌํ๋ค.
- ํจ์ ํธ์ถ ์, ๋ฐฐ์ด arr์ ์ฃผ์๊ฐ์ด ํจ์ func()๋ก ์ ๋ฌ๋ฉ๋๋ค.
- ์ฆ, ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์๊ฐ &arr[0]์ด ์ ๋ฌ๋ฉ๋๋ค.
- ํ์ ์ธ์์ ํํ
- ํจ์ func()๋ ๋ฐฐ์ด์ ์ฃผ์๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๊ธฐ ์ํด int* pArr์ ๊ฐ์ ํฌ์ธํฐ ํ์์ ์ฌ์ฉํฉ๋๋ค.
- ์ด๋ ๋ฐฐ์ด์ ์ง์ ์ ๋ฌํ์ง ์๊ณ , ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ ์์์์น(์ฃผ์)๋ฅผ ์ฐธ์กฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ์์ ๋๋ค.
- ํฌ์ธํฐ์ ๋ฐฐ์ด์ ๊ด๊ณ
- ๋ฐฐ์ด ์ด๋ฆ์ ๋ฐฐ์ด์ ์์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ ํฌ์ธํฐ์ ๊ฐ์ผ๋ฉฐ, ํฌ์ธํฐ ์ฐ์ฐ์ ํตํด ๋ฐฐ์ด์ ๊ฐ ์์์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ๋ฐ๋ผ์, ๋ฐฐ์ด์ ์ ๋ฌ๋ฐ์ ํจ์๋ ํฌ์ธํฐ ์ฐ์ฐ(*(pArr+i))๋๋ ๋ฐฐ์ด ํ๊ธฐ๋ฒ (pArr[i])์ผ๋ก ๋ฐฐ์ด ์์์ ์ ๊ทผํ ์ ์์ต๋๋ค.
โญ๋ณด์ถฉ ์ค๋ช
- ํฌ์ธํฐ์ ๋ฐฐ์ด์ ๊ด๊ณ ์ ๋ฆฌ
- "๋ฐฐ์ด์ ์ด๋ฆ์ ํฌ์ธํฐ์ด๋ค"๋ผ๋ ํํ์ ๋ฐฐ์ด ์ด๋ฆ์ด ์์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ํ์ง๋ง ๋ฐฐ์ด ์ด๋ฆ์ ์์ ํฌ์ธํฐ๋ก, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ ํฌ์ธํฐ(pArr)๋ ๋ฐฐ์ด ์ด๋ฆ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋งค๊ฐ๋ณ์ ๋ฐฐ์ด ํ๊ธฐ๋ฒ
- ํจ์ ์ ์ธ์์ ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋, ๋ค์ ๋ ํ๊ธฐ๋ฒ์ ๋์ผํ ์๋ฏธ๋ฅผ ๊ฐ์ง๋๋ค.
int func(int *pArr, int size); // ํฌ์ธํฐ ํ์ int func(int pArr[], int size); // ๋ฐฐ์ด ํ๊ธฐ๋ฒ
- ๋ฐฐ์ด์ ํฌ๊ธฐ ์ ํ
- ๋ฐฐ์ด์ ํฌ๊ธฐ ์ ๋ณด๊ฐ ํจ์๋ก ์ ๋ฌ๋์ง ์์ผ๋ฏ๋ก, ๋ณ๋๋ก ํฌ๊ธฐ๋ฅผ ํจ๊ป ์ ๋ฌํด์ผํฉ๋๋ค. (int size)
- ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ๋ค๋ค์ผ ํ ๊ฒฝ์ฐ์๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก
- ๋ฐฐ์ด์ ํจ์์ ์ ๋ฌ ์ธ์๋ก ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ํ๊บผ๋ฒ์ ๋๊ธธ ์ ์์ผ๋ฉฐ, ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์ด๋ฅผ ์ํด ๋ฐฐ์ด์ ์์ ์ฃผ์๋ฅผ ํฌ์ธํฐ ํ์์ผ๋ก ๋ฐ์ ๋ฐฐ์ด ์์๋ฅผ ๋ค๋ฃน๋๋ค.
- "๋ฐฐ์ด์ ์ด๋ฆ์ ํฌ์ธํฐ์ด๋ค"๋ผ๋ ํน์ง์ ํ์ฉํ๋ฉด, ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ๋ฅผ ์ดํดํ๊ณ ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ ํ ์ ์์ต๋๋ค.
3. ํจ์ ํธ์ถ ์ ๋ฐฐ์ด์ ์ฃผ์ ์ ๋ฌ๊ณผ์
๋ฐฐ์ด์ ํจ์์ ์ ๋ฌ ์ธ์๋ก ์ฌ์ฉํ ๋ ๋ฐฐ์ด์ ์ฃผ์๊ฐ ์ ๋ฌ๋๋ ๊ธฐ๋ณธ์๋ฆฌ์ ๋ํด ์๊ฐํ ํ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ดํดํด์ผ ํ ๋ถ๋ถ โ
- ๋ฐฐ์ด ์ฃผ์ ์ ๋ฌ์ ์๋ฆฌ
- ๋งค๊ฐ ๋ณ์์ ์ฃผ์๊ฐ ๋ณต์ฌ๋์ด ํฌ์ธํฐ๋ก ๋ฐฐ์ด ์์๋ฅผ ์ฐธ์กฐํ๋ ๋ฐฉ๋ฒ
- ๋ฐฐ์ด ์ด๋ฆ๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ
ํจ์ ํธ์ถ ์
- ๋ฐฐ์ด arr์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ๊ฐ ์์๊ฐ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ฉฐ, ๋ฐฐ์ด ์ด๋ฆ arr์ ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์๊ฐ(0X100)์ ๊ฐ๋ฆฌํต๋๋ค.
ํจ์ ํธ์ถ ์
- ํจ์ func()๋ก ๋ฐฐ์ด ์ด๋ฆ arr์ด ์ ๋ฌ๋๋ฉด์, ๋ฐฐ์ด์ ์์ ์ฃผ์๊ฐ์ด pArr์ ๋ณต์ฌ๋ฉ๋๋ค.
- ์ด์ ํจ์ func()๋ ๋ฐฐ์ด์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
ํฌ์ธํฐ์ ๋ฐฐ์ด์ ๋ ๋ฆฝ์ฑ
- ํจ์ func()์ ๋งค๊ฐ๋ณ์ pArr๋ ๋ฐฐ์ด arr์ ์ฃผ์๊ฐ์ ๋ณต์ฌํ์ฌ ์ฌ์ฉํ๋ฏ๋ก, ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ๊ตฌ์กฐ์ ๊ด๊ณ์์ด ๋ฐฐ์ด ์ ์ฒด๋ฅผ ๊ฐ๋จํ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
4. ํจ์ ํธ์ถ ์ ๋ฐฐ์ด ์ฃผ์ ์ ๋ฌ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ณํ ๊ณผ์
๋ฐฐ์ด ์ฃผ์๊ฐ ์ ๋ฌ๋๋ ๊ธฐ๋ณธ ์๋ฆฌ๋ฅผ ์ดํดํ๋ค๋ฉด, ์ด์ ํจ์ ํธ์ถ ์ , ํธ์ถ ์ค, ํธ์ถ ํ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๋ณํํ๋์ง ๋จ๊ณ๋ณ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ์ ์ดํดํด์ผ ํ ๋ถ๋ถ โ
- ํจ์ ํธ์ถ ์ : ๋ฐฐ์ด๊ณผ ๋ณ์์ ์ด๊ธฐ ์ํ
- ํจ์ ํธ์ถ ์: ๋ฐฐ์ด์ ์ฃผ์ ์ ๋ฌ ๋ฐ ํจ์ ๋ด๋ถ ์ง์ญ ๋ณ์์ ์์ฑ
- ํจ์ ํธ์ถ ํ: ํจ์ ์ข ๋ฃ๋ก ์ธํ ์ง์ญ ๋ณ์ ์๋ฉธ, ๋ฐฐ์ด์ ์๋ ์ํ ์ ์ง
- ํจ์ ํธ์ถ ์
- ๋ฐฐ์ด arr๋ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ, ๋ฐฐ์ด์ ์ด๋ฆ arr์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์(arr[0])์ ์ฃผ์๊ฐ 0x100์ ๋ํ๋ ๋๋ค.
- arr ๋ฐฐ์ด ์ธ์๋ sumArr ๋ณ์๊ฐ ๋ณ๋๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์กด์ฌํฉ๋๋ค.
- ํจ์ ํธ์ถ ์
- ํจ์ func()๊ฐ ํธ์ถ๋๋ฉด์, ๋ฐฐ์ด arr์ ์ฃผ์๊ฐ(0x100) ์ด ๋งค๊ฐ๋ณ์ pArr์ ๋ณต์ฌ๋ฉ๋๋ค.
- ์ด์ ํจ์ func() ๋ด๋ถ์์ pArr๋ฅผ ํตํด arr ๋ฐฐ์ด์ ์์์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- size ๋ณ์์ sum ๋ณ์๊ฐ ํจ์ ๋ด๋ถ์์ ์๋กญ๊ฒ ์์ฑ๋๋ฉฐ, ๋ฐฐ์ด ์์๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ํจ์ ํธ์ถ ํ
- ํจ์๊ฐ ์ข ๋ฃ๋๋ฉด์ ํจ์ ๋ด๋ถ์์ ์ฌ์ฉ๋ ์ง์ญ ๋ณ์(pArr, size, sum)๋ ์๋ฉธ๋ฉ๋๋ค.
- ํ์ง๋ง func() ๊ฐ ๋ฐํํ ๊ฐ(๋ฐฐ์ด ์์์ ์ดํฉ)์ sumArr์ ์ ์ฅ๋์ด ๋จ์ ์์ต๋๋ค.
- ๋ฐฐ์ด arr๋ ์ฌ์ ํ ์๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ง๋ฉ๋๋ค.
โญ ์ถ๊ฐ ์ค๋ช : ๋ฐฐ์ด ์ฃผ์ ์ ๋ฌ์ ํน์ง
- ์ฃผ์๊ฐ ๋ณต์ฌ
- ํจ์ ํธ์ถ ์ ๋ฐฐ์ด ์์ฒด๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฐฐ์ด์ ์์ ์ฃผ์(&arr[0])๋ง ๋ณต์ฌํ์ฌ ์ ๋ฌ๋ฉ๋๋ค.
- ๋
๋ฆฝ์ ์ธ ์ง์ญ ๋ณ์
- ํจ์ ๋ด๋ถ์ ๋งค๊ฐ๋ณ์ pArr๋ ๋ฐฐ์ด์ ์ฃผ์๋ฅผ ์ฐธ์กฐํ์ง๋ง, ์ด๋ ํจ์๊ฐ ์ข ๋ฃ๋๋ฉด ์๋ฉธ๋ฉ๋๋ค.
- pArr๊ฐ ์๋ฉธ๋์ด๋ ์๋์ ๋ฐฐ์ด arr๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค.
- ๋ฐฐ์ด ํฌ๊ธฐ ์ ๋ณด์ ํ์์ฑ
- ๋ฐฐ์ด์ ํฌ๊ธฐ ์ ๋ณด๋ฅผ ํฌํจํ์ง ์์ผ๋ฏ๋ก, ๋ณ๋๋ก ๋ฐฐ์ด์ ํฌ๊ธฐ(sizeArr)๋ฅผ ํจ๊ป ์ ๋ฌํด์ผ ํฉ๋๋ค.
- ํจ์ ํธ์ถ์ ํจ์จ์ฑ
- ๋ฐฐ์ด์ ์์๊ฐ ๋ง์๋ ์ฃผ์๊ฐ ํ๋๋ง ๋ณต์ฌ๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ์ด ์ ์ฝ๋ฉ๋๋ค.
๋ฐฐ์ด๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ๋ฅผ ์ดํดํ๊ณ , ๋ฐฐ์ด์ ํจ์์ ์ ๋ฌ ์ธ์๋ก ์ฌ์ฉํ ๋์ ๋์ ์๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ๋ณํ๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ๋ฐฐ์ด ์ด๋ฆ์ด ํฌ์ธํฐ ์ฒ๋ผ ๋์ํ๋ค๋ ์ ๊ณผ ๋ฐฐ์ด์ ์ฃผ์๊ฐ ์ ๋ฌ๋๋ฉฐ, ํจ์ ํธ์ถ ์ ํ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๋ณํํ๋์ง ์์ ์ฝ๋์ ๊ทธ๋ฆผ์ ํตํด์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ฐ์ดํฐ ์ฐธ์กฐ ๋ฐฉ์์ ์ดํดํ๋ ์๊ฐ์ด์์ต๋๋ค....๐