2-3 ์คํผ๋ ์ดํฐ. (์ฐ์ฐ์.)
์๋ ๋งํฌ๋ ์คํผ๋ ์ดํฐ์ ๋ํ cplusplus ๋ท์ปด์ ๋ฌธ์๋ค.
http://www.cplusplus.com/doc/tutorial/operators/
๋งํฌ์ ๋งจ ์๋ ํ๋ฅผ ๋ณด๋ฉด ์ฌ๋ฌ๊ฐ์ง ์คํผ๋ ์ดํฐ๋ค์ด ์๋๋ฐ, ๊ทธ๊ฒ๋ค์ค ๋ช๊ฐ์ง์ ๋ํด ์์๋ณด์. (์ธ๊ธํ์ง ์์ ๋ช๊ฐ์ง๋ ๋ค์ ํํ ๋ฆฌ์ผ๋ ๋ด๋ ๋ ๊ฑฐ ๊ฐ์์ ๋์ด๊ฐ.)
2-3-1 Assignment ์คํผ๋ ์ดํฐ ( ๋์ ์ฐ์ฐ์) ย =
๋์ ์ฐ์ฐ์ ํ ๋ ์ฐ๋ ์คํผ๋ ์ดํฐ์ด๋ค. int i = 3; ๊ณผ ๊ฐ์ด ์ผ์ชฝ์ ์๋ ๋ณ์์ ์ค๋ฅธ์ชฝ ๊ฐ์ ๋์ ํ ๋ ์ด๋ค. ์ฌ๊ธฐ์ ๊ด๋ จ๋ ๋ด์ฉ์ l value ์ r value์ ๋ํ ๋ด์ฉ์ธ๋ฐ, ์๋ ๋งํฌ๋ก ๊ฐ์ ์ก์๋ ๋๊ณ , ์ฑ ์์ ์ฐพ์๋ด๋ ๋๋ค. ๋ํผ์ +@์ ๊ฐ๊น์ด ๋ด ์ค๋ช ๋๋ ์ฃผ๊ด์ ์ธ ํด์ ๋ณด๋จ ๋ ํผ๋ฐ์ค์ชฝ์ ์ฐพ์๋ณด๋๊ฒ ํจ์ฌ ์ ํํ๊ธฐ ๋๋ฌธ์ด๋ค. (๋ฒ์ญ์ ์ผ์โฆ ์ฐ์ธก๊ฐ, ์ข์ธก๊ฐ์ด๋ผ๊ณ ๋ ํ๋ค๋๋ฐ, ๊ทธ๋ฅ LValue RValue ๊ทธ๋๋ก ์ฐ๋๊ฒ ์๋ฏธ์ ๋ฌ์ด ์ ๋๋ ๊ฒ ๊ฐ๋คโฆ)
https://msdn.microsoft.com/en-us/library/f90831hc.aspx
๋๋ต์ ์ผ๋ก, C++์์ ์ค๋ฅธ์ชฝ ๊ฐ์, ์ผ์ชฝ ๊ฐ์ด ์๋ ๊ฐ์ด๋ผ ๋ณด๋ฉด ๋๋คโฆ ย ์ ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์๋์ง, ์ด๋ ๊ฐ๋ฅํ์ง ๋ฑ๋ฑ์ ํ๋ณ๋ฒ์ผ๋ก ์ผ์ชฝ ๊ฐ๊ณผ ์ค๋ฅธ์ชฝ๊ฐ์ ๊ตฌ๋ถํ๋๋ฐ,
์ผ์ชฝ ๊ฐ์ ์ ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ์ด๋์ ๋ถ๊ฐ๋ฅํ๊ณ ,
์ค๋ฅธ์ชฝ ๊ฐ์ ์ด๋์ด ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒ์ด๋ค.
์ฆ ์ค๋ฅธ์ชฝ ๊ฐ์๋ ์ ์ฒด๊ฐ ์์ด์, = ์คํผ๋ ์ดํฐ๋ก ๋์ ํ ์๊ฐ ์๊ณ , ์ผ์ชฝ๊ฐ์๋ ๊ฐ๋ฅํ๋ค.
TC++PL ๊ฐ์ ์ฑ ์ ๋ณด๋ฉด ์์ธํ ๋์ค๋๊น ๋ ๊น๊ฒ ์์๋ณด๋ ค๋ฉด ํ๊ถ ์ฌ์ ๋ณด๋๊ฒ๋ ์ข๋ค...
2-3-2 Arithmetic ์คํผ๋ ์ดํฐ(์ฐ์ ์ฐ์ฐ์) ย +, -, *, /, %
๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ์? ๊ณ์ฐ์ ํ ๋ ์ฐ๋ ์คํผ๋ ์ดํฐ ๋ค์ด๋ค.
์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฐ์ฐํ๋ค. ๊ฒฐ๊ณผ๋ ์ค๋ฅธ์ชฝ ๊ฐ์ด๊ณ , ๊ทธ ๊ฒฐ๊ณผ
int a = 1; int b = 2;
์ผ๋
a+b = 0;
๊ฐ์ ์์ C++์์ ์ธ์ ์๊ฒ ๋๋ค.
+๋ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ ์๋๊ฒ์ ๋ํ๊ฐ์ ๋ฆฌํดํด์ฃผ๊ณ ,
-๋ ๋บ ๊ฐ์
*๋ ๊ณฑํ ๊ฐ์
/๋ ๋๋ ๊ฐ์ ๋ฆฌํดํด์ค๋ค.
%๋ ๋๋จธ์ง๋ฅผ ๋ฆฌํดํด์ฃผ๋๋ฐ, int ๊ฐ์ ์ ์ํ ํ์ ์๋ง ์ธ์ ์๋ค. (๋ฐ๋ก fmod๋ผ๋ ํจ์๊ฐ ์๋ค.)
2-3-3 bitwise (๋นํธ ์ฐ์ฐ์) <<, >>, &, ^, |
<<์ >>์ ๋นํธ๋ฅผ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฏธ๋ ์ฐ์ฐ์ด๋ค.
3 << 1 ๊ฐ์ ์์ด๋ฉด
3์ด ๋นํธ๋ก ๋ณด๋ฉด 0011์ด๋๊น, 0110์ผ๋ก ํ์นธ ์ผ์ชฝ์ผ๋ก ๋ฐ๋ ค๋๊ณ , ๊ฒฐ๊ณผ ๊ฐ์ 6์ด ๋๋ ๊ทธ๋ฐ ์ฐ์ฐ ๋ฐฉ๋ฒ์ด๋ค.
๋ฐ๋ก ๋นํธ๋ฅผ ์กฐ์ํด๋ฒ๋ฆฌ๋, ์ด์ ๋ธ๋ฆฌ์์์ ๊ฐ์ฅ ๋น ๋ฅธ ์ฐ์ฐ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํ๋ค.
&, ^, | ์ ๊ฐ๊ฐ AND, XOR, OR์ ํด๋นํ๋ ๋นํธ ์ฐ์ฐ์ด๋ค.
๋นํธ๋ก 1111๊ณผ 1001 ย ์ด ์์๋ ๊ฐ ์ฐ์ฐ์๋ค๋ก ์ฐ์ฐ์ ํ๋ฉด ์ด๋ ๊ฒ ๋๋ค.
1111 & 1001 = 1001,
1111^1001 = 0110,
1111|1001 = 1111
&๋ ์์ชฝ ๋ค true์ธ bit๊ฐ true, ํ์ชฝ์ด๋ผ๋ false๋ฉด false๋ฅผ ๋ปํ๊ณ ,
^๋ ์์ชฝ์ด ๊ฐ์ผ๋ฉด false ์์ชฝ์ด ๋ค๋ฅด๋ฉด true๋ฅผ ๋ปํ๋ค.
|์ ํ์ชฝ๋ง ๊ฐ์๋ true๊ณ , ์์ชฝ ๋ค ๋ฌ๋ผ์ผ false๋ฅผ ๋ปํจ.
2-3-4 compound assignment (ํฉ์ฑ ๋์ ์ฐ์ฐ์) *=, /=, %=, +=, -=, >>=, <<=, &=, ^=, |=
๊ฐ์ข ์ฐ์ฐํ์ ๋์ ๊น์ง ํด์ฃผ๋ ์คํผ๋ ์ดํฐ๋ค์ด๋ค ์์์๋ณธ ๋ํ๊ธฐ ๋นผ๊ธฐ๋ ์๊ณ , ๋นํธ์ฐ์ฐ์ ๊ดํ๊ฒ๋ ์๋ค.
2-3-5 comparison (๋น๊ต์ฐ์ฐ์) <, >, <=, >=, ==, !=
a<b (a ๊ฐ b ๋ณด๋ค ์์ผ๋ฉด ์ฐธ, ํฌ๋ฉด ๊ฑฐ์ง) a๊ฐ b ๋ฏธ๋ง์ผ๋
a>b (a ๊ฐ b ๋ณด๋ค ํฌ๋ฉด ์ฐธ, ์์ผ๋ฉด ๊ฑฐ์ง) a๊ฐ b ์ด๊ณผ์ผ๋
a<=b (a ๊ฐ b ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ, ํฌ๋ฉด ๊ฑฐ์ง) a๊ฐ b ์ดํ์ผ๋
a>=b (a ๊ฐ b ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ, ์์ผ๋ฉด ๊ฑฐ์ง) a๊ฐ b ์ด์์ผ๋
์ ๊ฐ์.
a==b (a๊ฐ b์ ๊ฐ์๋ ์ฐธ, ๋ค๋ฅผ๋ ๊ฑฐ์ง)
a != b (a๊ฐ b์ ๋ค๋ฅผ๋ ์ฐธ, ๊ฐ์๋ ๊ฑฐ์ง)
2-3-6 logical(๋ ผ๋ฆฌ ์ฐ์ฐ์) &&, ||
๋ ผ๋ฆฌ์ ์ผ๋ก AND ์ผ๋ &&๋ฅผ ์ฐ๊ณ , ๋ ผ๋ฆฌ์ ์ผ๋ก OR ์ผ๋ ||๋ฅผ ์.
์์ ๋นํธ ์ฐ์ฐ์ฒ๋ผ. &&์ ๊ฒฝ์ฐ a๋ ์ฐธ์ด๊ณ , b๋ ์ฐธ์ผ๋ ์ฐธ.
||์ ๊ฒฝ์ฐ ๋์ค ํ๋๋ง ์ฐธ ์ด๋ผ๋ ์ฐธ.
2-3-7 conditional (์กฐ๊ฑด ์ฐ์ฐ์.)
?: ๋ฅผ ์จ์ ์ฐ๋ ์ฐ์ฐ์์ธ๋ฐ, ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋, if else๋ฅผ ์ฐ๋๊ฒ ๋ณด๊ธฐ ์ข์. ๋ฌผ๋ก ์ฌ๊ธฐ์ ์ด๋ป๊ฒ ์ฐ๋์ง ์์์ผ ํ๊ธฐ ๋๋ฌธ์ ์จ๋ณด์๋ฉด (๋ ผ๋ฆฌ) ? (์ฐธ):(๊ฑฐ์ง) ์ ํํ๋ก ์.
1 2 3 4 5 6 7 8 9 10 | #includeย <iostream> ย intย main(void)ย {ย ย ย ย ย ย ย ย intย iย =ย 1,ย jย =ย 2;ย ย ย ย ย ย ย ย ย ย ย ย std::coutย <<ย (ย iย >ย jย ?ย iย :ย jย )ย <<ย "ย isย greater."ย <<ย std::endl;ย ย ย ย ย ย ย reutrunย 0; }ย ย | cs |
์ฒ๋ผ ์ธ์ ์์.
์์ ์์๋ i๊ฐ j๋ณด๋ค ํด๋, ์ฐธ์ด๋ฉด i๋ฅผ, ๊ฑฐ์ง์ด๋ฉด j๋ฅผ ๋ฆฌํดํ๋๊ฒ์.
๊ทธ๋ฆฌ๊ณ conditional operator๋ ํญ์ด 3๊ฐ ๋ค์ด๊ฐ๋ค.
์ฌ๊ธฐ๊น์ง ์ดํญ์ฐ์ฐ์? binary operator์ ๋ํด ์์๋ดค๋ค.
๋ค์์ ๋จํญ์ฐ์ฐ์ (unary operator๋ผ๊ณ ๋ถ๋ฅธ๋ค.)์ ๋ํด ์์๋ณด์.
๋จํญ์ฐ์ฐ์ postfix์ prefix๊ฐ ์๋๋ฐ, ์๊ธด๊ฑด ๋น์ทํด๋, ๋ด์ฉ์ ๋ค๋ฅธ ์ฐ์ฐ์. (๋์ค์ class๋ฅผ ๋ค๋ฃจ๋ ํํ ๋ฆฌ์ผ๋ ๊ตฌํ์ ํด๋ณด๊ณ ์ง๊ธ์ ๋ง๋ง ๋ณด๊ณ ๋์ด๊ฐ์;;)
๊ฐ๋จํ๊ฒ ๋งํด์ postfix๋ ๊ฒฐ๊ณผ๊ฐ ๋ค์์ค์์ ์ ์ฉ๋๊ณ , prefix๋ ์ด๋ฒ์ค์์ ์ ์ฉ๋๊ณ ๋์ด๊ฐ๋ค.
int i = 1;
int j = ++i; (prefix)
int k = i++; (postfix)
๋ฅผ ํ์๋, j๋ prefix ์ฐ์ฐ๋๋ฌธ์, 2๊ฐ ๋๊ณ ๊ฐ์ ์ ๋ฌ๋ฐ๋๋ค.
k๋ postfix ์ฐ์ฐ๋๋ฌธ์, 2๋ฅผ ์ ๋ฌ ๋ฐ๊ณ ๋์, i๊ฐ ์ฆ๊ฐํด 3์ด ๋๋ค.
์ด ++์ -- ์ธ์ ๋ค๋ฅธ postfix ์ฐ์ฐ์์, prefix ์ฐ์ฐ์๋ ๊ฒน์น๋๊ฒ ์๊ธฐ ๋๋ฌธ์, ๋ณ๋ก ํ๊น๋ฆฌ์ง ์์ผ๋, ๋ค์ ์ฐ์ฐ์๋ฅผ ๋ณด์.
postfix ๋จํญ์ฐ์ฐ์. (์ ๋ฏธ๋จํญ์ฐ์ฐ์?)
์๋ค๋ค์ ํํ๋ค์ ์ฐ์ธ๋ค.
() - ํจ์ ํํ์ ์ฐ์ฐ์.
[] - ๋ฐฐ์ด์ ์ฐ์ด๋ subscript ์ฐ์ฐ์. (๋ฑํ ๋ฒ์ญํ ๋งํ๊ฒ ์๋ค;;)
postfix-expression [ expression ] ๋ก ์ฐ์ธ๋ค.
prefix ๋จํญ์ฐ์ฐ์. (์ ๋๋จํญ์ฐ์ฐ์??)
์๋ค๋ค์ ํํ ์์ ์ฐ์ธ๋ค.
~
๋นํธ ์ฐ์ฐ์ NOT ์ฐ์ฐ์ ์ฐ์ด๋ ์ฐ์ฐ์.
~1001 ์ 0110 ์ด๋ค.
!
๋ ผ๋ฆฌ ์ฐ์ฐ์ NOT ์ฐ์ฐ์ ์ฐ์ด๋ ์ฐ์ฐ์.
!false ์ true ์ด๋ค.
-
๊ฐ์ ์์๋ก ๋ฐ๊ฟ์ค๋ค.
&, * ์ฐธ์กฐ, ์ญ์ฐธ์กฐ(๋ ํผ๋ฐ์ค, ๋๋ ํผ๋ฐ์ค)์ ์ฐ์ด๋ ์ฐ์ฐ์์ด๋ค.
๋ค์์ ํฌ์ธํฐ ํ ๋ ๋ณด์.
new/delete
ํ ๋น/ํด์ ์ ์ฐ์ด๋ ์ฐ์ฐ์์ด๋ค. C์ malloc/free ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ๋ค.
์ด ์ธ์๋ ๋ง์ ์ฐ์ฐ์๊ฐ ์์ง๋ง, ์ฐจ์ฐจ ์์๋ณด๊ณ , ์ง๊ธ์ ์ฌ๊ธฐ๊น์ง ํ์.
์ฐ๋๋ฐ 2์ผ์ด๋ ๊ฑธ๋ฆฌ๋ค๋... ๋๋ฌด ์ค๋๊ฑธ๋ ธ๋ค ใ ใ
๊ธ์ธ๋ 65535์ ์ ํ์ด ์์๋ค? ๋ชฐ๋๋ค... ๋๋ ์ ์ฌ๋ฆผ.... ์ด๋ด๊ฑฐ๋ฉด ์ชผ๊ฐ์ ํ์ ํธ, ์คํผ๋ ์ดํฐํธ์ผ๋ก ๋๋๊ฑธ ๊ทธ๋ฌ๋ค;;
๋ค์ ์ฃผ์ ๋ก ํฌ์ธํฐ์ ํจ์๊ฐ ์ข์๊น? ์๋ ๋ฃจํ๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ด ์ข์๊น?
๊ฐ์๊ธ์ ๊ตณ ใ ใ ๊ทธ๋ฐ๋ฐ ์กฐ๊ฑด์ฐ์ฐ์๋ ์ผํญ์ฐ์ฐ์์ ์กฐ๊ฑด๋ฌธ -> ๋ฐ๋ณต๋ฌธ -> ํฌ์ธํฐ -> ํจ์ ์์๊ฐ ์ข์ ๊ฒ ๊ฐ์ ๋ด์๊ฐ์
ใด ใ ใ ใ ใ ๋ค์์ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ํ๋ฑ ํ๊ณ , ๊ฐ๋ฉด ๋ ๋ฏ