C์ธ์ด์ ์ฅ์
C์ธ์ด๋ ์ ์ฐจ์งํฅ์ ํน์ฑ์ ์ง๋๋ค. ๋๋ฌธ์ ์ต์ํด์ง๋๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์๋๋ค. ์ฆ, ์ ์ฐจ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ฌ์ด ๋๋ ๊ฒ์ โ์์โ์ด๋ค.
C์ธ์ด๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ์ด์์ฑ์ด ์ข๋ค.
C์ธ์ด๋ก ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์ข์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
C์ธ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํจ์๋ก ์์ํด์ ํจ์๋ก ๋๋๋ค.
int => ์ถ๋ ฅํํ main => ํจ์์ด๋ฆ (void) => ์ ๋ ฅํํ
์์ int์ void๋ ๊ฐ๊ฐ ์ถ๋ ฅ๊ณผ ์ ๋ ฅ์ ํํ๋ฅผ ์ค๋ช ํ๋ ๊ฒ์ด๋ค. ์ฆ, ์ถ๋ ฅ์ ํํ๊ฐ int ์ด๊ณ ์ ๋ ฅ์ ํํ๊ฐ void์ธ main์ด๋ผ๋ ํจ์
C์ธ์ด์ ํจ์ ๋ด์ ์กด์ฌํ๋ ๋ฌธ์ฅ์ ๋์๋ ์ธ๋ฏธ์ฝ๋ก ๋ฌธ์ ;์ ๋ถ์ฌ์ค๋ค.
printf ํจ์๋ ํจ์ํธ์ถ ์ ์ ๋ฌ๋๋ ๋ฌธ์์ด์ ๋ชจ๋ํฐ์ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์ ์ง๋๋ค. ์ด๋ ์ง์ ๋ง๋ค์ง ์์๋ ํธ์ถ์ด ๊ฐ๋ฅํ, ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ํจ์ ์ฆ, ์ด๋ฏธ ๋ง๋ค์ด ์ ธ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ํจ์๋ฅผ ๊ฐ๋ฆฌ์ผ โํ์คํจ์โ๋ผ๊ณ ํ๊ณ ํ์คํจ์๋ค์ ๋ชจ์์ ๊ฐ๋ฆฌ์ผ โํ์ค๋ผ์ด๋ธ๋ฌ๋ฆฌโ ๋ผ๊ณ ํ๋ค.
printf์ ์์๋ฌธ์์ ์ข ๋ฅ
%d : 10์ง์
%o : 8์ง์
%s : ๋ฌธ์์ด
%x : 16์ง์
%f : ์ค์
%Lf : ์ค์ โ Long double
return ์ ํจ์์ ์ข ๋ฃ์ ๊ฐ์ ์ ๋ฌ์ด๋ผ๋ ๋ ๊ฐ์ง ์๋ฏธ๋ฅผ ์ง๋๋ค.
ํจ์๋ฅผ ํธ์ถํ ์์ญ์ผ๋ก ๊ฐ์ ์ ๋ฌ
ํ์ฌ ์คํ์ค์ธ ํจ์์ ์ข ๋ฃ
์ฃผ์์ด๋?
ํ๋ก๊ทธ๋จ ๋ด์ ์ฝ์ ๋ ๋ฉ๋ชจ๋ฅผ ์๋ฏธํ๋ค. ์ฃผ์์ ์ ํ์ด ์๋ ํ์์ด๋ค.
๋ธ๋ก ๋จ์ ์ฃผ์
/* ์ฃผ์์ฒ๋ฆฌ ๋ ๋ฌธ์ฅ */
/*
์ฃผ์์ฒ๋ฆฌ ๋ ๋ฌธ์ฅ1
์ฃผ์์ฒ๋ฆฌ ๋ ๋ฌธ์ฅ2
*/
ํ ๋จ์ ์ฃผ์
// ์ฃผ์์ฒ๋ฆฌ ๋ ๋ฌธ์ฅ1
// ์ฃผ์์ฒ๋ฆฌ ๋ ๋ฌธ์ฅ2
์ฃผ์์ฒ๋ฆฌ์ ์์ด์์ ์ฃผ์์
๋ธ๋ก ๋จ์ ์ฃผ์์ ์ค์ฒฉ๋ ์ ์๋ค.
/*
์ฃผ์์ฒ๋ฆฌ ๋ ๋ฌธ์ฅ1
/* ๋จ์ผ ํ ์ฃผ์์ฒ๋ฆฌ */
์ฃผ์์ฒ๋ฆฌ ๋ ๋ฌธ์ฅ2
*/
printf ํจ์๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค.
๋ํ printf ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ฌธ์์ด ์ด์ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ํํ๋ก ์ถ๋ ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ์ ์ ์ถ๋ ฅ๋ ๊ฐ๋ฅ
C์ธ์ด๋ฅผ ์ด์ฉํด์ ํน์ ์ฐ์ฐ์ ์๊ตฌํ ๋ ์ฌ์ฉํ๋ ์ฝ์๋ ๊ธฐํธ๋ฅผ ๊ฐ๋ฆฌ์ผ โ์ฐ์ฐ์โ๋ผ ํ๋ค.
โ๋ง์ ์ฐ์ฐ์ ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ๊ฐ์ ์ถ๋ ฅํ๋ค.โ
์์ ๋ง์ฒ๋ผ ๋ง์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉด , printf ํจ์์ ํธ์ถ์ ํตํด ๋ค์ํ ํํ๋ก ์ถ๋ ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ง ๋ฟ ์๋๋ผ, ์ ์ฅ๋ ๊ฐ์ ๊ฐ์ง๊ณ ์ถ๊ฐ์ ์ธ ์ฐ์ฐ๋ ์งํํ ์๊ฐ ์๋ค. ์ด๋ฅผ ์ ์ฅ ํ๊ธฐ ์ํด C์ธ์ด๋ โ๋ณ์โ๋ผ๋ ๊ฒ์ ์ ๊ณตํ๋ค.
์ ์ธ๋ ๋ณ์์ ์ฒ์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ โ์ด๊ธฐํโ๋ผ๊ณ ํ๋ค.
int main(void)
{
int num; //num์ด๋ผ๋ ๋ณ์์ ์ ์ธ
num=12; //๋ณ์ num์ 12๋ก ์ด๊ธฐํ
}
C์ธ์ด์์๋ ๋ณ์๋ฅผ โ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํโํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
But ๋ณ์๋ฅผ ์ ์ธ๋ง ํ๊ณ ์ด๊ธฐํํ์ง ์์ผ๋ฉด ์ฐ๋ ๊ธฐ ๊ฐ์ด ์ ์ฅ๋๋ค.
๋ณ์์ ์ธ ์ ์ค๊ดํธ ๋ด์ ๋ณ์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ, ๋ณ์์ ์ ์ธ๋ฌธ์ ์ค๊ดํธ์ ์๋ถ๋ถ์ ์์นํด์ผ ํ๋ค.
๋ณ์์ ์ด๋ฆ์ ์ง์ ๋
๋ณ์์ ์ด๋ฆ์ ์ํ๋ฒณ, ์ซ์, ์ธ๋๋ฐ๋ก ๊ตฌ์ฑ๋๋ค.
C์ธ์ด๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ค.
๋ณ์์ ์ด๋ฆ์ ์ซ์๋ก ์์ํ ์ ์๊ณ , ํค์๋๋ ๋ณ์์ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฆ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์ฝ์ ๋ ์์๋ค.
๋ณ์์ ์๋ฃํ์๋
์ ์ํ ๋ณ์ : ์ ์์ ์ ์ฅ์ ๋ชฉ์ ์ผ๋ก ์ ์ธ๋ ๋ณ์
์ค์ํ ๋ณ์ : ์์์ ์ดํ์ ๊ฐ์ ์ง๋๋ ์ค์์ ์ ์ฅ์ ๋ชฉ์ ์ผ๋ก ์ ์ธ๋ ๋ณ์
๋์ ์ฐ์ฐ์(=)์ ์ฐ์ ์ฐ์ฐ์(+_*%)
= ์ฐ์ฐ์ ์ค๋ฅธ์ชฝ์ ์๋ ๊ฐ์ ์ฐ์ฐ์ ์ผ์ชฝ์ ์๋ ๋ณ์์ ๋์ ํ๋ค.
+ ๋ ํผ์ฐ์ฐ์์ ๊ฐ์ ๋ํ๋ค.
์ผ์ชฝ์ ํผ์ฐ์ฐ์ ๊ฐ์์ ์ค๋ฅธ์ชฝ์ ํผ์ฐ์ฐ์ ๊ฐ์ ๋บ๋ค.
* ๋ ํผ์ฐ์ฐ์์ ๊ฐ์ ๊ณฑํ๋ค.
/ ์ผ์ชฝ์ ํผ์ฐ์ฐ์ ๊ฐ์ ์ค๋ฅธ์ชฝ์ ํผ์ฐ์ฐ์ ๊ฐ์ผ๋ก ๋๋๋ค.
% ์ผ์ชฝ์ ํผ์ฐ์ฐ์ ๊ฐ์ ์ค๋ฅธ์ชฝ์ ํผ์ฐ์ฐ์ ๊ฐ์ผ๋ก ๋๋ด์ ๋ ์ป๊ฒ ๋๋ ๋๋จธ์ง๋ฅผ ๋ฐํ
์ฆ๊ฐ, ๊ฐ์ ์ฐ์ฐ์
++.num ๊ฐ์ 1 ์ฆ๊ฐ ํ, ์ํ ๋ฌธ์ฅ์ ๋๋จธ์ง๋ฅผ ์งํ
num++ ์ํ ๋ฌธ์ฅ์ ๋จผ์ ์งํํ ํ, ๊ฐ์ 1 ์ฆ๊ฐ
--num ๊ฐ์ 1 ๊ฐ์ ํ, ์ํ ๋ฌธ์ฅ์ ๋๋จธ์ง๋ฅผ ์งํ
numโ ์ํ ๋ฌธ์ฅ์ ๋จผ์ ์งํํ ํ, ๊ฐ์ 1 ๊ฐ์
๊ด๊ณ ์ฐ์ฐ์
< n1์ด n2๋ณด๋ค ์์๊ฐ?
>n1์ด n2๋ณด๋ค ํฐ๊ฐ?
== .n1๊ณผ n2๊ฐ ๊ฐ์๊ฐ?
!= n1๊ณผ n2๊ฐ ๋ค๋ฅธ๊ฐ?
<= n1์ด n2๋ณด๋ค ๊ฐ๊ฑฐ๋ ์์๊ฐ?
>= n1์ด n2๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฐ๊ฐ?
์์ ๊ด๊ณ ์ฐ์ฐ์๋ค์ โ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด 1์, ๋ง์กฑํ์ง ์์ผ๋ฉด 0์ ๋ฐํโํ๋ค.
๋ ผ๋ฆฌ ์ฐ์ฐ์
&& A์ B ๋ชจ๋ ์ฐธ์ด๋ฉด ์ฐ์ฐ๊ฒฐ๊ณผ๋ก โ์ฐธ์ ๋ฐํโ(๋ ผ๋ฆฌ AND)
|| A์ B ๋ ์ค ํ๋๋ผ๋ ์ฐธ์ด๋ฉด ์ฐ์ฐ๊ฒฐ๊ณผ๋ก โ์ฐธ์ ๋ฐํโ(๋ ผ๋ฆฌ OR)
! A๊ฐ ์ฐธ์ด๋ฉด ๊ฑฐ์ง, A๊ฐ ๊ฑฐ์ง์ด๋ฉด ์ฐธ์ ๋ฐํ (๋ ผ๋ฆฌNOT)
scnaf ํจ์๋ฅผ ํธ์ถํ๋ฉด์ ๋ณ์ ์์ &์ฐ์ฐ์๊ฐ ๋ถ์ด์๋ค.
scanf ํจ์ํธ์ถ์ ํตํด์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ํํ๋ก ์ ๋ ฅ ๋ฐ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
scanfํจ์๋ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๋ค.
์ ์์ ํํ ๋ฐฉ์
- ์ ์์ ๊ฐ์ฅ ์ผ์ชฝ์ ์กด์ฌํ๋ ๋นํธ๋ โ๋ถํธ๋นํธโ์ด๋ค.
- ์์ ์ ์๋ฅผ ํํํ ๋์๋ 2์ ๋ณด์๋ฅผ ์ทจํด์ผ ํ๋ค.
์ค์์ ํํ ๋ฐฉ์
์ค์๋ฅผ ํํํ๋ ๊ธฐ๋ณธ๋ฐฉ์ :
์ปดํจํฐ๊ฐ ์ค์๋ฅผ ํํํ๋ ๋ฐฉ์์๋ ์ค์ฐจ๊ฐ ์กด์ฌํ๋ค.
โ๋์ ๋ฒ์์ ์ค์๋ฅผ ํํํ ์ ์์ง๋ง, ์ค์์ ํํ์ ์ค์ฐจ๊ฐ ์กด์ฌํ๋ค.โ
๋นํธ์ฐ์ฐ์
& : ๋นํธ๋จ์๋ก AND ์ฐ์ฐ์ ํ๋ค.
0&0 : 0์ ๋ฐํ
0&1 : 0์ ๋ฐํ
1&0 : 0์ ๋ฐํ
1&1 : 1์ ๋ฐํ
| : ๋นํธ๋จ์๋ก OR ์ฐ์ฐ์ ํ๋ค.
0|0 : 0์ ๋ฐํ
0|1 : 1์ ๋ฐํ
1|0 : 1์ ๋ฐํ
1|1 : 1์ ๋ฐํ
^ : ๋นํธ๋จ์๋ก XOR ์ฐ์ฐ์ ํ๋ค.
0^0 : 0์ ๋ฐํ
0^1 : 1์ ๋ฐํ
1^0 : 1์ ๋ฐํ
0^1 : 0์ ๋ฐํ
~ : ๋จํญ ์ฐ์ฐ์๋ก์ ํผ์ฐ์ฐ์์ ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ๋ค.
~0 : 1์ ๋ฐํ
~1 : 0์ ๋ฐํ
<< : ํผ์ฐ์ฐ์์ ๋นํธ ์ด์ ์ผ์ชฝ์ผ๋ก ์ด๋ ์ํจ๋ค.
num1 << num2 : num1์ ๋นํธ ์ด์ num2์นธ์ฉ ์ผ์ชฝ์ผ๋ก ์ด๋์ํจ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
>> : ํผ์ฐ์ฐ์์ ๋นํธ ์ด์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํจ๋ค.
๊ธฐ๋ณธ ์๋ฃํ์ ์ข ๋ฅ์ ๋ฐ์ดํฐ์ ํํ ๋ฐฉ๋ฒ
์ ์ํ : char โ 1byte : -128์ด์+127์ดํ
short โ 2byte : -32,768์ด์ +32,767์ดํ
int โ 4byte : -2,147,483,648์ด์ +2,147,483,647์ดํ
long โ 4byte : -2,147,483,648์ด์ +2,147,483,647์ดํ
longlong โ 8byte : -9,223,372,036,854,775,808์ด์
-9,223,372,036,854,775,808์ดํ
์ค์ํ : float โ 4byte
double โ 8byte
long double โ 8byte์ด์
โshort์ int๋ ์ต์ 2byte์ด๋, int๋ short์ ํฌ๊ธฐ๊ฐ ๊ฐ๊ฑฐ๋ ๋ ์ปค์ผ ํ๋ค.โ
์ฐ์ฐ์ sizeof๋ฅผ ์ด์ฉํ๋ฉด ์๋ฃํ์ ํฌ๊ธฐ๋ฅผ ํ์ธํ ์ ์๋ค.
์์์ ๋ํ ์ดํด๋ฅผ ํ๋ฉด ์์๋ ํฌ๊ฒ ์ด๋ฆ์ด ์๋ ์์์ ์ด๋ฆ์ด ์๋ ์์๋ก ๋๋๋ฉฐ, ์์ ์ญ์ ์์ ์ค๋ช ํ int, double๊ณผ ๊ฐ์ ์๋ฃํ์ ๊ทผ๊ฑฐ๋ก ํํ์ด ๋๋ค.
์๋ฃํ์ ๋ณํ์ ํ ๋ ๋์ ์ฐ์ฐ์์ ์ ๋ฌ๊ณผ์ ์์ ๋ฐ์ํ๋ ์๋ ํ ๋ณํ์์ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ณผ์ ์์๋ โ์์๋ถ์ ์์คโ์ด ๋ฐ์ํ๋ค.
But int num = 129;
char ch =num;
์ด๋ด ๋๋ ?
์ด๋ด ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณ์ ch์ ์ ์ฅํ๊ธฐ ์ํด์ 1byte๋ก ์ค์ฌ์ผํ๋ค. ์ฆ โ ์์ ๋ฐ์ดํธ์ ์์คโ์ด ๋ฐ์ํ๋ค.
์ ๋ฆฌ๋ฅผ ํ์๋ฉด
์ ์๋ฅผ ์ค์๋ก ํ ๋ณํํ๋ ๊ฒฝ์ฐ : ์ค์์ ํํ ๋ฒ์๊ฐ ์ ์์ใ ๋นํด ํจ์ฌ ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์์ค์ ์ผ์ด๋์ง ์๋๋ค. ๊ทธ๋ฌ๋ ์ค์์ ํํ์ด๊ธฐ ๋๋ฌธ์ ์ค์ฐจ๋ ์กด์ฌํ๋ค.
์ค์๋ฅผ ์ ์๋ก ํ ๋ณํํ๋ ๊ฒฝ์ฐ : ์์์ ์ดํ์ ๊ฐ์ ํํํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์, ์์์ ์ดํ์ ๊ฐ์ ๋ฒ๋ ค์ง๋ค.
๋ฐ์ดํธ ํฌ๊ธฐ๊ฐ ํฐ ์ ์๋ฅผ ๋ฐ์ดํธ ํฌ๊ธฐ๊ฐ ์์ ์ ์๋ก ํ ๋ณํํ๋ ๊ฒฝ์ฐ : ๋ณํํ๊ณ ์ ํ๋ ์ ์์ ๋ฐ์ดํธ ํฌ๊ธฐ์ ๋ง์ถฐ์ ์์ ๋ฐ์ดํธ๋ฅผ ๋จ์ํ ์๋ฉธ์ํจ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ก ์ธํด์ ๋ถํธ๊ฐ ๋ฐ๋ ์๋ ์๋ค.
๋ฐ๋ณต๋ฌธ - while
while(์กฐ๊ฑด๋ฌธ)
{
๋ฐ๋ณต๋ฌธ
}
do ~ while
do
{
๋ฐ๋ณต๋ฌธ
}while(์กฐ๊ฑด๋ฌธ)
for(์ด๊ธฐ์; ์กฐ๊ฑด์; ์ฆ๊ฐ์)
{
๋ฐ๋ณต๋ฌธ
}
์กฐ๊ฑด์ if๋ฌธ
if(์กฐ๊ฑด์)
{
์กฐ๊ฑด๋ฌธ
}
if ~else๋ฌธ์ ์ด์ฉํ์ฌ ํ๋ฆ์ ๋ถ๊ธฐ ํ ์ ์๋ค.
else๋ฅผ ์ด์ฉํ์ฌ if์กฐ๊ฑด์ ์ ์ธํ ๋ค๋ฅธ ๊ฐ์ ๋ํ ์กฐ๊ฑด์ ์คํํ๋ค..
if else if else์ ๊ตฌ์ฑ
if(์กฐ๊ฑด1)
{
์กฐ๊ฑด1 ๋ง์กฑ ์ ์คํ
}
else if(์กฐ๊ฑด2)
{
//์กฐ๊ฑด2 ๋ง์กฑ ์ ์คํ
}
else if(์กฐ๊ฑด3)
{
//์กฐ๊ฑด3 ๋ง์กฑ ์ ์คํ
}
continue & break
break๋ ๋ฐ๋ณต๋ฌธ์ ํ์ถํ ๋ ์ฌ์ฉํ๋ค.
continue๋ ๋ฐ๋ณต๋ฌธ์์ ๋๋จธ์ง ์๋ตํ๊ณ ๋ฐ๋ณต์กฐ๊ฑด์ ํ์ธํ ๋ ์ฌ์ฉํ๋ค.
switch๋ฌธ?
switch(๋ณ์)
{
case :
{
์คํ๋ฌธ
}
case :
{
์คํ๋ฌธ
} => switch ๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ
switch๋ฌธ์ ์ ํ๋ฌธ์ด๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ์ ํํ๋ ๊ฒ์ ๋ง์ถฐ ์คํ์ํจ๋ค.
goto?
goto๋ ์ด๋ฆ ๊ทธ๋๋ก ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ์ํ๋ ์์น๋ก ์ด๋ํ ๋ ์ฌ์ฉํ๋ ํค์๋์ด๋ค.
๊ทธ๋ฌ๋ goto์ ๋จ์ ์ โํ๋ก๊ทธ๋จ์ ์์ฐ์ค๋ฌ์ด ํ๋ฆ์ ๋ฐฉํดํ๋ค.โ
์ด๊ฒ ์ ๋ฌธ์ ์ผ๊น? C์ธ์ด๋ ์ ์ฐจ์งํฅ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ํ๋ฆ์ ๋ฐ๋ผ ์ด๋ํ๋ค. ๊ทธ๋ฌ๋ goto๋ฅผ ์ฐ๊ฒ ๋๋ฉด ํ๋ฆ์ ๊นจ๋ฒ๋ฆฌ๊ณ ๊ฐ์ ์ ์ผ๋ก ์ด๋ํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํจ์
๊ณผ์ฐ ํจ์๋ฅผ ๋ง๋๋ ์ด์ ๋ ๋ฌด์์ผ๊น?
ํจ์๋ฅผ ๋ง๋๋ ์ด์ ๋ ๋น ๋ฅด๊ณ ์์ ์ด ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ง๋๋ ๊ฒ์ด๋ค.
ํ๋ก๊ทธ๋จ์ ๊ตฌํ์ ํ๋ค๋ณด๋ฉด ๋ณต์กํ ๊ฒ์ ๋น์ฐํ๋ค. ์ด๋ฌํ ํ๋ก๊ทธ๋จ ๊ตฌํ ์ค ์ด๋์์ ํ๋ ธ๋์ง ์ด๋์์ ๋งํ๋์ง๋ฅผ ์ข ๋ ๋น ๋ฅด๊ฒ ์์ ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค.
๋ณ์
๋ณ์๋ ์ ์ธ๋๋ ์์น์ ๋ฐ๋ผ์ ํฌ๊ฒ โ์ ์ญ๋ณ์โ์ โ์ง์ญ๋ณ์โ๋ก ๋๋๋ค.
๊ณผ์ฐ ๋ ๊ฐ์ง์ ์ฐจ์ด์ ์?
๋ฉ๋ชจ๋ฆฌ์์ ์กด์ฌํ๋ ๊ธฐ๊ฐ
๋ณ์์ ์ ๊ทผํ ์ ์๋ ๋ฒ์
ํจ์ ๋ด์๋ง ์กด์ฌ ๋ฐ ์ ๊ทผ ๊ฐ๋ฅํ ์ง์ญ๋ณ์(Local Variable)
โ์ง์ญ๋ณ์โ์์์ โ์ง์ญโ์ด๋ ์ค๊ดํธ์ ์ํด ํ์ฑ๋๋ ์์ญ์ ๋ปํ๋ค. ๋ฐ๋ผ์ ์ค๊ดํธ ๋ด์ ์ ์ธ๋๋ ๋ณ์๋ ๋ชจ๋ ์ง์ญ๋ณ์์ด๋ค.
๊ทธ๋ฌ๋ ์ง์ญ๋ณ์๋ ํจ์๋ฅผ ๋น ์ ธ๋๊ฐ๊ธฐ ์ง์ ๊น์ง๋ง ์กด์ฌํ๋ค. ์๋ํ๋ฉด ์ง์ญ๋ณ์๋ ํด๋น์ง์ญ์ ๋ฒ์ด๋๋ฉด ์๋์ผ๋ก ์๋ฉธ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ํ ์ง์ญ๋ณ์์ ์ง์ญ์ด ๋ค๋ฅด๋ฉด ์ด๋ฆ์ด ๊ฐ์๋ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค.
์ง์ญ ๋ณ์์ ์ผ์ข ์ธ ๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์์ ๋ค์ ํน์ฑ์ ์ง๋๋ค.
์ ์ธ๋ ํจ์ ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
์ ์ธ๋ ํจ์๊ฐ ๋ฐํ์ ํ๋ฉด, ์ง์ญ๋ณ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ฉธ
์ ์ญ๋ณ์?
์ด๋ฆ์ด ์๋ฏธํ๋ฏ์ด ์ด๋์๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๋ณ์๋ก์จ ์ง์ญ๋ณ์์ ๋ฌ๋ฆฌ ์ค๊ดํธ ๋ด์ ์ ์ธ๋์ง ์๋๋ค. ๋ง์ฝ ์ ์ญ๋ณ์์ ๋์ผํ ์ด๋ฆ์ ์ง์ญ๋ณ์๊ฐ ์ ์ธ๋๋ฉด ํด๋น ์ง์ญ ๋ด์์๋ ์ ์ญ๋ณ์๊ฐ ๊ฐ๋ฆฌ์์ง๊ณ , ์ง์ญ๋ณ์๋ก์ ์ ๊ทผ์ด ์ด๋ค์ง๋ค.
์ ์ญ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ข๋ค๊ณ ์๊ฐํ๊ณ ๋ง์ด ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด ์๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋ค. ์๋ํ๋ฉด ์ ์ญ๋ณ์๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋๋ ์ฃผ๋ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ง์ญ๋ณ์์ static ์ ์ธ์ ์ถ๊ฐํด์ ๋ง๋๋ static๋ณ์
์ง์ญ๋ณ์์ static์ ์ ์ธ์ ํ๊ฒ ๋๋ฉด ์ ์ญ๋ณ์์ ์ฑ๊ฒฉ์ ์ง๋๋ ๋ณ์๊ฐ ๋๋ค.
์ด๋ ๋๊ฐ์ง์ ํน์ฑ์ด ์๋๋ฐ
์ ์ธ๋ ํจ์ ๋ด์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
ํจ์ ๋ด์ ์ ์ธ๋ ์ง์ญ๋ณ์๋ ํด๋น ํจ์๊ฐ ๋ฐํํ๋ฉด ์๋ฉธ๋๋ค.
๊ทธ๋ฌ๋ ํจ์ ๋ด์ ์ ์ธ๋ ์ง์ญ๋ณ์์ static ์ ์ธ์ด ๋ถ๊ฒ ๋๋ฉด
์ ์ธ๋ ํจ์ ๋ด์์๋ง ์ ๊ทผ๊ฐ๋ฅํ๋ค.(์ง์ญ๋ณ์ ํน์ฑ)
๋ฑ 1ํ ์ด๊ธฐํ๋๊ณ ํ๋ก๊ทธ๋จ ์ข ๋ฃ ์๊น์ง ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์กด์ฌํ๋ค.(์ ์ญ๋ณ์ ํน์ฑ)
register๋ณ์
์ง์ญ๋ณ์์๋ register๋ผ๋ ์ ์ธ์ ์ถ๊ฐํ ์ ์๋ค. ์ด๋ฅผ ๋ ์ง์คํฐ ๋ณ์๋ผ๊ณ ํ๋ค.
์ด๋ ๋ ์ง์คํฐ๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ํ๋ฅ ์ด ๋์์ง๋ค. ์๋ํ๋ฉด ์ปดํ์ผ๋ฌ์๊ฒ ์ ๊ทผ์ ๋น ๋ฅด๊ฒ ํ๋ผ๊ณ ๋ช ๋ น์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฌ๊ทํจ์๋?
ํจ์ ๋ด์์ ์๊ธฐ ์์ ์ ๋ค์ ํธ์ถํ๋ ํจ์๋ฅผ ์๋ฏธํ๋ค.
๋ฐฐ์ด์ด๋?
๋ค์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ๋ฐฐ์ด์ด๋ค.
๋ฐฐ์ด์ ์ธ์ int pwnplay[5]; ์ด๋ฐ์์ผ๋ก ํ๋ค.
๋ฌธ์์ด ๋ง์ง๋ง์๋ null ๊ฐ์ด ๋ค์ด๊ฐ๋ค.
์ฆ char str[14]=โGood morning!\0โ
์ด๋ฌํ ์์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ผ ์ null์ดํ์ํ ๊น?
์ด๋ null์ ์ด์ฉํ์ฌ ๋ฌธ์์ ๋์ ํ์ ํด์ฃผ๋ ๊ฒ์ด๋ค.
ํฌ์ธํฐ๋?
C์ธ์ด์ ๊ฝ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ํฌ์ธํฐ๋ &์ *์ฐ์ฐ์๋ฅผ ๊ฐ๋ฆฌ์ผ ํฌ์ธํฐ ์ฐ์ฐ์๋ผ ํ๋๋ฐ *์ฐ์ฐ์๋ ๊ณฑ์ ์ฐ์ฐ์๊ฐ ์๋๋ผ ํผ์ฐ์ฐ์๊ฐ ํ ๊ฐ์ธ ๋จํญ ์ฐ์ฐ์์ด๋ค.
&์ฐ์ฐ์๋ ํผ์ฐ์ฐ์์ ์ฃผ์ ๊ฐ์ ๋ฐํํ๋ ์ฐ์ฐ์์ด๋ค. &์ฐ์ฐ์๋
int main(void)
{
int num=5;
int * pnum = #
}
*์ฐ์ฐ์๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ์์ด๋ค.
ํฌ์ธํฐํ์ ๋ค์ํ๊ฒ ์กด์ฌํ๋ค. ํฌ์ธํฐํ์ด ๋ค์ํ๊ฒ ์กด์ฌํ๋ ์ด์ ๋ ํฌ์ธํฐ์ ํ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐธ์กฐํ๋ ๊ธฐ์ค์ด ๋๋ค. ์ฆ, ํฌ์ธํฐ ํ์ ์ ์ํ ์ด์ ๋ *์ฐ์ฐ์๋ฅผ ํตํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ทผ ๊ธฐ์ค์ ๋ง๋ จํ๊ธฐ ์ํจ์ด๋ค.
ํฌ์ธํฐ ๋ณ์์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ ๊ฐ์ด ์ ์ฅ๋๊ณ , ์ด๋ฅผ ์ด์ฉํด์ ํด๋น ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ทผ๋ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ํฌ์ธํฐ์ ๊ด๋ จํด์๋ ์๋นํ ์ฃผ์ํด์ผ ํ๋ค.
๊ณผ์ฐ ๋ฐฐ์ด์ ์ด๋ฆ์ ๋ฌด์์ ์๋ฏธํ๋ ๊ฒ์ผ๊น?
๋ฐฐ์ด์ ์ด๋ฆ์ ํฌ์ธํฐ์ด๋ค. ๋จ, ๊ทธ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋ โ์์ ํํ์ ํฌ์ธํฐโ์ด๋ค.
์ฆ, ๋ฐฐ์ด์ ์ด๋ฆ์ ๋ฐฐ์ด์ ์์ ์ฃผ์ ๊ฐ์ ์๋ฏธํ๋ฉฐ, ๊ทธ ํํ๋ ๊ฐ์ ์ ์ฅ์ด ๋ถ๊ฐ๋ฅํ ์์์ด๋ค.
๋ํ ๋ฐฐ์ด์ ์ด๋ฆ๋ ํฌ์ธํฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ด๋ฆ์ ํผ์ฐ์ฐ์๋ก ํ๋ *์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
ํฌ์ธํฐ๋ฅผ ๋ฐฐ์ด์ ์ด๋ฆ์ฒ๋ผ ์ฌ์ฉ ๋ํ ํ ์ ์๋ค.
arr[i]==*(arr+i) ์ด๊ฒ์งฑ์ด๋ค.
๊ฐ์ ์ ๋ฌํ๋ ํํ์ ํจ์ํธ์ถ : Call-by-value
ํจ์๋ฅผ ํธ์ถํ ๋ ๋จ์ํ ๊ฐ์ ์ ๋ฌํ๋ ํํ์ ํจ์ ํธ์ถ์ ๊ฐ๋ฆฌ์ผ Call-by-value์ด๋ผ ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ ์ฌ์ฉ๋๋ ์ฃผ์ ๊ฐ์ ์ ๋ฌํ๋ ํํ์ ํจ์ ํธ์ถ์ ๊ฐ๋ฆฌ์ผ Call-by-reference๋ผ ํ๋ค. ์ฆ, Call-by-value์ Call-by-reference๋ฅผ ๊ตฌ๋ถํ๋ ๊ธฐ์ค์ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋๋ ๋์์ ์๋ค.
์ด์ฏค๋๋ฉด scanf์์ &๋ฅผ ์ฐ๋ ์ด์ ๋ฅผ ์์ ์์ ๊ฒ์ด๋ค. ์ด๋ scanf๋ก ์ ๋ ฅ์ ๋ฐ์ผ๋ฉด ์ฃผ์๊ฐ์ ์์๋ด๊ธฐ์ํด &๋ฅผ ์ ๋ ฅํ๋ค.
ํฌ์ธํฐ ๋์์ const?
const๋ฅผ ์ฐ๋ ์ด์ ๋ const๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ์ ์์ ์ฑ์ด ๋์์ง๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๋ค.
๋ค์ฐจ์ ๋ฐฐ์ด์ ์ดํด์ ํ์ฉ
2์ฐจ์?3์ฐจ์?
๋ฌผ๋ก 4,5์ฐจ์๋ ์์ง๋ง ์์ฐ์ง์๋๋ค
๋ค์ฐจ์ ๋ฐฐ์ด์ ์ ์ธํ๋ ๋ฐฉ๋ฒ์ int pwnplay[์ธ๋ก๊ธธ์ด][๊ฐ๋ก๊ธธ์ด]์ด๋ฌํ ํ์์ผ๋ก ์ ์ธํ๋ค.
๋ํ int pwnplay[3][3]={1,2,3,4,5,6,7,0,0};์ด๋ฌํ ์์ผ๋ก ์ ์ธ๋ ๊ฐ๋ฅํ๋ค.
3์ฐจ์ ๋ฐฐ์ด์
int pwnplay[๋์ด][์ธ๋ก][๊ฐ๋ก]; ํ์์ ์ ์ธ์ ํ๋ค.
ํฌ์ธํฐ ๋ณ์๋ ์ข ๋ฅ์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ์ฃผ์ ๊ฐ์ ์ ์ฅํ๋ ๋ณ์์ด๋ค. ๋ค๋ง ์ฐจ์ด๊ฐ ๋๋ ๊ฒ์ ํฌ์ธํฐ ๋ณ์๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ผ ๋ฟ์ด๋ค.
์ด์ค ํฌ์ธํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ์ผ์คํฌ์ธํฐ?
***์ด๊ฐ ์ธ ๊ฐ ์ฝ์ ๋ ํฌ์ธํฐ ๋ณ์๋ฅผ ๊ฐ๋ฆฌ์ผ ์ผ๋ฐ์ ์ผ๋ก โ์ผ์ค ํฌ์ธํฐ ๋ณ์โ๋ผ ๋ถ๋ฅธ๋ค.
โ์ผ์ค ํฌ์ธํฐ ๋ณ์๋ ์ด์ค ํฌ์ธํฐ ๋ณ์๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฉ๋๋ก, ์ด์ค ํฌ์ธํฐ ๋ณ์์ ์ฃผ์ ๊ฐ์ ์ ์ฅํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.โ
์ง๊ธ๊น์ง ๊ณต๋ถํ ๊ฒ์ ๋ณด๋ฉด ํ์ด ์กด์ฌํ์ง ์๋ ๊ฒ์ด ํ๋ ์๋ ๊ฒ์ ๋ณผ์ ์๋ค.
์ฆ void ํฌ์ธํฐ์ธ๋ฐ
ex) void * ptr;
voidํ ํฌ์ธํฐ ๋ณ์๋ ๋ฌด์์ด๋ ๋ด์ ์ ์๋ ๋ฐ๊ตฌ๋์ ๋น์ ํ ์ ์๋ค. voidํ ํฌ์ธํฐ ๋ณ์์๋ ์ด๋ ํ ๋ณ์์ ์ฃผ์ ๊ฐ์ด๋ ๋ด์ ์ ์๋ค.
mainํจ์๋ฅผ ํตํ ์ธ์์ ์ ๋ฌ?
ํ๋ก๊ทธ๋จ ์คํ ์ main ํจ์๋ก ์ ๋ฌํ ์ธ์๋ฅผ ์ด๊ฑฐํ ์ ์์ผ๋ฉฐ mainํจ์ ์ญ์ ์ด๋ฌํ ์ธ์๋ฅผ ์ ๋ฌ๋ฐ์ ์ ์๋๋ก ์ ํ๋ ํํ์ ๋งค๊ฐ๋ณ์ ์ ์ธ์ด ๊ฐ๋ฅํ๋ค.
ex) int main(int argc, char *argv[])
char *argv[]๋ TYPEํ 1์ฐจ์ ๋ฐฐ์ด์ ์ด๋ฆ(์ฃผ์๊ฐ)์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ ์๋ ๋งค๊ฐ๋ณ์ ์ ์ธ์ด๋ค.
๋ฌธ์ ์ถ๋ ฅ ํจ์ : putchar, fputc
putchar ํจ์๋ ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์์ ๋ณด๋ฅผ stdout์ผ๋ก ํํ๋๋ ํ์ค ์ถ๋ ฅ ์คํธ๋ฆผ์ผ๋ก ์ ์กํ๋ ํจ์์ด๋ค. ๋ฐ๋ผ์ ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์๋ฅผ ๋ชจ๋ํฐ๋ก ์ถ๋ ฅํ๋ ํจ์๋ผ ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์๋ฅผ ์ ์กํ๋ค๋ ์ธก๋ฉด์์๋ fputc ํจ์์ putchar ํจ์์ ๋์ผํ๋ค. ๋จ, fputcํจ์๋ ๋ฌธ์๋ฅผ ์ ์กํ ์คํธ๋ฆผ์ ์ง์ ํ ์ ์๋ค. ์ฆ fputcํจ์๋ฅผ ์ด์ฉํ๋ฉด stdout๋ฟ๋ง ์๋๋ผ, ํ์ผ์ ๋์์ผ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
๋ฌธ์ ์ ๋ ฅ ํจ์ : getchar, fgetc
getchar ํจ์๋ stdin์ผ๋ก ํํ๋๋ ํ์ค ์ ๋ ฅ ์คํธ๋ฆผ์ผ๋ก๋ถํฐ ํ๋์ ๋ฌธ์๋ฅผ ์ ๋ ฅ ๋ฐ์์ ๋ฐํํ๋ ํจ์๋ค.
fgetc ํจ์๋ getcharํจ์์ ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ ๋ ฅ ๋ฐ์ ์คํธ๋ฆผ์ ์ง์ ํ ์ ์๋ค.
๋ฌธ์์ด ์ถ๋ ฅ ํจ์ : puts, fputs
puts ํจ์๋ ์ถ๋ ค๊ทธ์ด ๋์์ด stdout์ผ๋ก ๊ฒฐ์ ๋์ด ์์ง๋ง, fputs ํจ์๋ ๋ ๋ฒ์งธ ์ธ์๋ฅผ ํตํด์ ์ถ๋ ฅ์ ๋์์ ๊ฒฐ์ ํ ์ ์๋ค. ๋ํ ๋ ๋ค ์ฒซ ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋๋ ์ฃผ์ ๊ฐ์ ๋ฌธ์์ด์ ์ถ๋ ฅํ์ง๋ง, ์ถ๋ ฅ์ ํํ์ ์์ด ํ ๊ฐ์ง ์ฐจ์ด์ ์ด ์๋ค. ์ด๋ puts ํจ์๊ฐ ํธ์ถ๋๋ฉด ๋ฌธ์์ด ์ถ๋ ฅ ํ ์๋์ผ๋ก ๊ฐํ์ด ์ด๋ค์ง์ง๋ง, fputs ํจ์๊ฐ ํธ์ถ ๋๋ฉด ๋ฌธ์์ด ์ถ๋ ฅ ํ ์๋์ผ๋ก ๊ฐํ์ด ์ด๋ค์ง์ง ์๋๋ค.
์ด์ธ์ ๋ฌธ์์ด ๊ด๋ จ ํจ์
๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ ํจ์ : strlen
๋ฌธ์์ด์ ๋ณต์ฌํ๋ ํจ์ : strcpy, strncpy
๋ฌธ์์ด์ ๋ง๋ถ์ด๋ ํจ์ : strcat, strncat
๋ฌธ์์ด์ ๋น๊ตํ๋ ํจ์ : strcmp, strncmp
๊ตฌ์กฐ์ฒด๋ ๋ฌด์์ธ๊ฐ?
๊ตฌ์กฐ์ฒด๋ ํ๋ ์ด์์ ๋ณ์๋ฅผ ๋ฌถ์ด์ ์๋ก์ด ์๋ฃํ์ ์ ์ํ๋ ๋๊ตฌ์ด๋ค. ์ฆ ๊ตฌ์กฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฐ๋ฆฌ๋ ์๋ก์ด ์๋ฃํ์ ์ ์ํ ์ ์๋ค.
๊ตฌ์กฐ์ฒด ๋ณ์์ ์ด๊ธฐํ
์ด๊ธฐํ ๋ฐฉ๋ฒ์ ๋ฐฐ์ด์ ์ด๊ธฐํ์ ์ ์ฌํ๋ค. ์ฆ, ๋ฉค๋ฒ์ ์์๋๋ก ์ด๊ธฐํํ ๋์์ ๋์ดํ๋ฉด ๋๋ค.
๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ ์ธ๊ณผ ์ ๊ทผ
๋ค์์ int ํ๋ณ์๋ฅผ ์ ์ธํ ๋ int ํ ๋ฐฐ์ด์ ์ ์ธ์ ๊ณ ๋ คํ๋ฏ์ด, ๋ค์์ ๊ตฌ์กฐ์ฒด ๋ณ์๋ฅผ ์ ์ธํ ๋์๋ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ ์ธ์ ๊ณ ๋ คํด์ผ ํ๋ค.
๊ตฌ์กฐ์ฒด ๋ณ์์ ํฌ์ธํฐ
๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ ์ธ ๋ฐ ์ ๊ทผ์ ๋ฐฉ๋ฒ์ด ์ผ๋ฐ์ ์ธ ๋ฐฐ์ด์ ์ ์ธ ๋ฐ ์ ๊ทผ์ ๋ฐฉ๋ฒ๊ณผ ๋ค๋ฅด์ง ์๋ฏ์ด, ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ ๋ณ์์ ์ ์ธ ๋ฐ ์ฐ์ฐ์ ๋ฐฉ๋ฒ๋ ์ผ๋ฐ์ ์ธ ํฌ์ธํฐ ๋ณ์์ ์ ์ธ ๋ฐ ์ฐ์ฐ์ ๋ฐฉ๋ฒ๊ณผ ๋ค๋ฅด์ง ์๋ค.
typedef์ ์ธ
๋ฌด์์ผ๊น? typedef ์ ์ธ์ ๊ธฐ์กด์ ์กด์ฌํ๋ ์๋ฃํ์ ์ด๋ฆ์ ์ ์ด๋ฆ์ ๋ถ์ฌํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํ๋ ์ ์ธ์ด๋ค.
๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ํ๋ ์ด์ ๋?
๊ตฌ์กฐ์ฒด๋ฅผ ํตํด์ ์ฐ๊ด ์๋ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ฌถ์ ์ ์๋ ์๋ฃํ์ ์ ์ํ๋ฉด, ๋ฐ์ดํฐ์ ํํ ๋ฐ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํด์ง๊ณ , ๊ทธ๋งํผ ํฉ๋ฆฌ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ๋๋ค.
์ค์ฒฉ๋ ๊ตฌ์กฐ์ฒด์ ์ ์์ ๋ณ์์ ์ ์ธ
๋ฐฐ์ด์ด๋ ํฌ์ธํฐ ๋ณ์๊ฐ ๊ตฌ์กฐ์ฒด์ ๋ฉค๋ฒ๋ก ์ ์ธ๋ ์ ์๋ฏ์ด, ๊ตฌ์กฐ์ฒด ๋ณ์๋ ๊ตฌ์กฐ์ฒด์ ๋ฉค๋ฒ๋ก ์ ์ธ๋ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๋ฏ ๊ตฌ์กฐ์ฒด ์์ ๊ตฌ์กฐ์ฒด ๋ณ์๊ฐ ๋ฉค๋ฒ๋ก ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ๋ฆฌ์ผ โ๊ตฌ์กฐ์ฒด์ ์ค์ฒฉโ์ด๋ผ ํ๋ค.
ใ ฃ ใ ฃ
ใ ฃ ใ ฃ
ใ กใ กใ กใ กใ กใ กใ กใ ก
ใ ฃ ใ ฃ
ใ ฃ ใ ฃ <== ์ฝ๋ ์์ญ
ใ กใ กใ กใ กใ กใ กใ กใ ก
ใ ฃ ใ ฃ
ใ ฃ ใ ฃ <== ๋ฐ์ดํฐ ์์ญ
ใ กใ กใ กใ กใ กใ กใ กใ ก
ใ ฃ ใ ฃ
ใ ฃ ใ ฃ <== ํ ์์ญ
ใ กใ กใ กใ กใ กใ กใ กใ ก
ใ ฃ ใ ฃ
ใ ฃ ใ ฃ <== ์คํ ์์ญ
ใ กใ กใ กใ กใ กใ กใ กใ ก
์ฝ๋ ์์ญ : ์คํ ํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ
๋ฐ์ดํฐ ์์ญ : ์ด ์์ญ์ ํ ๋น๋๋ ๋ณ์๋ค์ ํ๋ก๊ทธ๋จ์ ์์๊ณผ ๋์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น๋์ด ํ๋ก๊ทธ๋จ ์ข ๋ฅ ์ ๊น์ง ๋จ์ ์์
ํ ์์ญ : ์ํ๋ ์์ ์์ ๋ณ์๋ฅผ ํ ๋นํ๊ณ ์๋ฉธ ์ํฌ์ ์์
์คํ ์์ญ : ์ง์ญ ๋ณ์์ ๋งค๊ฐ ๋ณ์๊ฐ ํ ๋น๋๋ค. ์ฆ, ์ด ์์ญ์ ํ ๋น๋ ๋ณ์๋ค์ ์ ์ธ๋ ํจ์๊ฐ ๋น ์ ธ๋๊ฐ๋ฉด ์๋ฉธ ๋๋ค.
ํจ์๊ฐ ํธ์ถ ๋๋ ์์ : main ํจ์ -> fac 1 ํจ์ -> fac 2 ํจ์
ํจ์๊ฐ ์๋ฉธ ๋๋ ์์ : fac 2 ํจ์ -> fac 1 ํจ์ -> main ํจ์
์ฆ, ๋จผ์ ํธ์ถ ๋ ํจ์์ ์คํ๊ณต๊ฐ ์ผ์๋ก ๋ฆ๊ฒ ํด์ฒด ๋๋ค.
free ํจ์๋ฅผ ํธํํ์ง ์์ผ๋ฉด ํ๋ก๊ทธ๋จ ์ข ๋ฃ ํ์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋จ์๊น?
-> ํ๋ก๊ทธ๋จ ์คํ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ฉด ์ด์์ฒด์ ์ ์ํด์ ์ ๋ถ ํด์ ๊ฐ ๋๋ค.
์ ํ์ฒ๋ฆฌ๋?
์ปดํ์ผ ์ด์ ์ ์ฒ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.
๋งคํฌ๋ก ํจ์์ ์ฅ์
- ์ผ๋ฐ ํจ์์ ๋นํด ์๋๊ฐ ๋น ๋ฅด๋ค.
- ์๋ฃํ์ ๋ฐ๋ผ์ ๋ณ๋๋ก ํจ์๋ฅผ ์ ์ํ์ง ์์๋ ๋๋ค.
๋งคํฌ๋ก ํจ์์ ๋จ์
- ์ ์ํ๊ธฐ๊ฐ ์ ๋ง๋ก ๊น๋ค๋กญ๋ค.
- ๋๋ฒ๊น ํ๊ธฐ๊ฐ ์ฝ์ง ์๋ค.
'Language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
rsa.py_ctf (0) | 2016.12.12 |
---|---|
toolhelp (0) | 2015.09.24 |
arp spoofing.c (0) | 2015.09.08 |
Mac Capture.c (0) | 2015.09.08 |
blind sql injection.py (0) | 2015.09.08 |
๋๊ธ