
์ ๋ฒ ๋ด์ฉ์์๋ ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ค๋ฅธ ํจ์์์ ๊ฐ์ ๋ฐ๊ฟจ์ ๋ main ํจ์์์๋ ๊ฐ์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ์์๋ดค๋๋ฐ
์ด๋ฒ ๋ด์ฉ์์๋ ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋ด์ฉ์ ๋ค์ด๊ฐ๊ธฐ ์์ ์ฐ์ฐ์๋ค์ ๋์ํ๋๋ฐ ์์๋ฅผ ๊ฐ์ง๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด ์์๋ฅผ ์๊ณ ์์ด์ผ ์ํ๋ ๊ฐ ๋๋ ์ํ๋ ์ฐ์ฐ์ ์ํํ ์๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์์ ์ฌ์ฉํ๋ ์ฐ์ฐ์๋ ์ฐธ์กฐ์ฐ์ฐ์, ์ฆ๊ฐ์ฐ์ฐ์๊ฐ ์์ต๋๋ค.
โญ๏ธ ์ฐ์ ์์(f โ s) : ์ฆ๊ฐ ์ฐ์ฐ์(++, --) โ ์ฐธ์กฐ ์ฐ์ฐ์(*)
์ ์ฆ๊ฐ ์ฐ์ฐ์๋ง ๋น๊ตํด๋ดค๋๋ฉด ๋ค๋ฅธ ์ฐ์ฐ๋ค์ ๋ค ์ฐธ์กฐ ์ฐ์ฐ์๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ๊ธฐ ๋๋ฌธ์ด๋ค.
ํฌ์ธํฐ ์ฐ์ฐ์ ๋ํ ์์ ์ฝ๋๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
Ex)
#include <stdio.h>
int main(){
int *p = NULL;
int num = 100;
p = #
*p += 5; โขโขโข 1)
printf("ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : %d\n", *p);
printf("num ๊ฐ : %d\n\n", num);
*p++; โขโขโข 2)
printf("ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : %d\n", *p);
printf("num ๊ฐ : %d\n\n", num);
(*p)++; โขโขโข 3)
printf("ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : %d\n", *p);
printf("num ๊ฐ : %d\n", num);
return 0;
}
ํฌ๊ฒ 3๊ฐ์ง๋ก ๋ณผ ์ ์์ต๋๋ค.
+=, ++(ํ์), ()++
+=* โ +=*p += 5;*p โ num์ด๋๊น num๋ณ์์ 5๊ฐ ๋ํด์ง๊ฒ ๋ฉ๋๋ค.printf("ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : %d\n", *p);
printf("num ๊ฐ : %d\n\n", num);ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : 105
num ๊ฐ : 105 ์ ์์ ์ผ๋ก 5๊ฐ ๋ํด์ง ๊ฒ์ ๋ณด์๊ณ ์๋ณธ์ ๊ฐ๋ +5๊ฐ ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.++(ํ์)++/-- โ **p++;*p โ num์ด๋๊น num๋ณ์์ 1์ด ๋ํด์ง๊ฒ ๋ฉ๋๋ค.printf("ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : %d\n", *p);
printf("num ๊ฐ : %d\n\n", num); ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : ?
num ๊ฐ : 105 *p์ ๊ฐ์ด ?๋ก ๋์๋๊ฐ.. 106์ด ์๋๊ณ ์ ๋ฌผ์ํ๊ฐ ๋์์๊น์? ์ด๋ ๋ฐ๋ก ์ฐ์ฐ์ ์ฐ์ ์์์ ์ด์ ๊ฐ ์์ต๋๋ค.++๊ฐ ๋จผ์ ์คํ๋ฉ๋๋ค.[p์ ์ ์ฅ๋ ์ฃผ์๊ฐ + 4]๊ฐ ๋๋๋ฐ ์ 1์ด ์๋๊ณ 4์ธ๊ฐ? ์ด๋ ๋ณ์์ ์๋ฃํ ํฌ๊ธฐ์ ๊ด๋ จ์ด ์์ต๋๋ค.๐ก ์๋ฃํ ํฌ๊ธฐ
`int` : 4byte / `double` : 8byte / `float` : 4byte / `char` : 1byte 1์ด๋ฉด [์๋ฃํ ํฌ๊ธฐ * 1]๋งํผ ์ ์ฅ๋ ์ฃผ์์ ๋ํ๊ณ ๋นผ๊ฒ ๋ฉ๋๋ค.1์ธ ๊ฒฝ์ฐ๋ง ์ ์ด๋จ๋๋ฐ ์ด๋ ์ฐ์ฐ์๊ฐ ++ ๋๋ --์ผ๋๋ง ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ํ๊ธฐ์ ์์ธ์ ์ธ ์ํฉ์
๋๋ค.()++() โ ++/-- โ *(*p)++; ์ด๋๋ ์ํ์ ์ธ ๊ฐ๋
์์์ ๊ฐ์ด ์๊ดํธ ์์ ์๋ ์ฐ์ฐ์ ๋จผ์ ์คํํ๊ณ ๊ทธ ๋ฐ์ ์๋ ์ฐ์ฐ์ ์ํํ๊ฒ ๋ฉ๋๋ค.*p -> ++printf("ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : %d\n", *p);
printf("num ๊ฐ : %d\n\n", num);ํฌ์ธํฐ p๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ : ?
num ๊ฐ : ? ์ ์ด๋ ๊ฒ 106์ด ์๋๋ผ ?๊ฐ ๋์ ๊ฐ์ ํ์ ์ง์ ์ ์๋๊ฐ ํ๋ฉด์ ์์์๋ ์ฃผ์์ ์ฐ์ฐ์ ํ๊ฑฐ๊ธฐ ๋๋ฌธ์ ์ ๊ฐ ์ง๊ธ์ผ๋ก์ ์ ์ ์๊ณ ์ง์ ๋๋ฒ๊น
์ ํด๋ด์ผ ์ ์ ์์ต๋๋ค.++/-- โ *++*p;++(*p)๋ก ๋ณด๋ฉด ๋ฉ๋๋ค.