ํฌ์ธํฐ์ ๋ค์ํ ํํ
C์ธ์ด์ ํฌ์ธํฐ๋ฅผ ์ดํดํ๊ณ ํ์ฉํ๋ ๊ฒ์ ์ฒ์ ์ ํ๋ ์ฌ๋๋ค์๊ฒ ๋ค์ ์ด๋ ค์ธ ์ ์๋๋ฐ, ๊ทธ ์ค ํ๋์ ์์ธ์ ์ฌ๋ฌ๊ฐ์ง ๋ค์ํ ํํ๋ฒ ๋๋ฌธ์ด๋ค. ํนํ, ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋๋ฐ, ์ด๋ ๋๋ก๋ ํผ๋์ ์ค ์ ์๋ค. ์ฌ๊ธฐ ๋ช ๊ฐ์ง ๋ํ์ ์ธ ์์๋ฅผ ๋ค์ด๋ณธ๋ค.
โญ 1. ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์
int A[10];
- ํํ๋ฒ 1: Aโ
- ๋ฐฐ์ด์ ์ด๋ฆ๋ง ์ฌ์ฉํ๋ฉด, ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์๋ฅผ ๋ํ๋ธ๋ค.
- ํํ๋ฒ 2: &A[0]
- ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์๋ฅผ ๋ช ์์ ์ผ๋ก ๋ํ๋ธ๋ค.
โญ 2. ํจ์ ํฌ์ธํฐ
int func(int x) {
return x * 2;
}
- ํํ๋ฒ 1: โfunc
- ํจ์ ์ด๋ฆ๋ง์ ์ฌ์ฉํ์ฌ ํด๋น ํจ์์ ์ฃผ์๋ฅผ ๋ํ๋ธ๋ค.
- ํํ๋ฒ 2: &func
- ํจ์์ ์ฃผ์๋ฅผ ๋ช ์์ ์ผ๋ก ๋ํ๋ด๊ธฐ ์ํด ํจ์ ์ด๋ฆ ์์ &๋ฅผ ๋ถ์ฌ ์ฌ์ฉํ๋ค.
โญ 3. ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ์ ์ฃผ์
struct MyStruct {
int x;
};
struct MyStruct *ptr = &myStruct;
- ํํ๋ฒ 1: (*ptr).x
- ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ x์ ์ฃผ์๋ฅผ ์ง์ ๋ํ๋ธ๋ค.
- ํํ๋ฒ 2: ptr->x
- ๊ตฌ์กฐ์ฒด์ ์์ ์ฃผ์๋ฅผ int *๋ก ์บ์คํ ํ์ฌ, ์ฒซ ๋ฒ์งธ ๋ฉค๋ฒ x์ ์ฃผ์๋ฅผ ์ป๋๋ค. ์ด๋ ๊ตฌ์กฐ์ฒด๊ฐ x๋ก ์์ํ๋ค๊ณ ๊ฐ์ ํ ๋ ์ ํจํ๋ค.
โญ 4. ํฌ์ธํฐ๋ฅผ ํตํ ๋ฐฐ์ด ์ ๊ทผ
int arr[3] = {10, 20, 30};
int *ptr = arr;
- ํํ๋ฒ 1: ptr[0]
- ํฌ์ธํฐ๋ฅผ ๋ฐฐ์ด์ฒ๋ผ ์ธ๋ฑ์ฑํ์ฌ ์ฒซ ๋ฒ์งธ ์์์ ์ ๊ทผํ๋ค.
- ํํ๋ฒ 2: *ptrโ
- ํฌ์ธํฐ๋ฅผ ์ญ์ฐธ์กฐํ์ฌ ์ฒซ ๋ฒ์งธ ์์์ ๊ฐ์ ์ป๋๋ค.
โญ 5. ๋ฌธ์์ด๊ณผ ํฌ์ธํฐ
char *str = "Hello";
- ํํ๋ฒ 1: str
- ํฌ์ธํฐ ๋ณ์ str์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๋ฌธ์์ ์ฃผ์๋ฅผ ๋ํ๋ธ๋ค.
- ํํ๋ฒ 2: &str[0]
- ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๋ฌธ์์ ์ฃผ์๋ฅผ ๋ช ์์ ์ผ๋ก ๋ํ๋ธ๋ค.
์ด๋ฌํ ์์๋ค์ C์ธ์ด์์ ํฌ์ธํฐ์ ๊ด๋ จ๋ ๋ค์ํ ํํ๋ฒ๋ค์ด ์ด๋ป๊ฒ ์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ์ ์๋์ง๋ฅผ ๋ณด์ฌ์ค๋ค. ํฌ์ธํฐ๋ ๊ฐ๋ ฅํ์ง๋ง, ๊ทธ ์ฌ์ฉ๋ฒ์ ์ ํํ ์ดํดํ๊ณ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค.
728x90
๋ฐ์ํ
'๐ท C์ธ์ด 30๊ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C/C++ Tip] 30. C์ธ์ด Unit Test ์ข ๋ฅ (2) | 2024.11.12 |
---|---|
[C/C++ Tip] 29. C์ธ์ด Unit Test (0) | 2024.11.12 |
[C/C++ Tip] 27. C์ธ์ด ๋ฐ์ดํฐ ํ์ ๋ฒ์ (0) | 2024.11.11 |
[C/C++ Tip] 26. Char, String ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (1) | 2024.11.10 |
[C/C++ Tip] 25. C์ธ์ด 2์ฐจ์ ๋ฐฐ์ด (0) | 2024.11.10 |