C Programming Language/C

C์–ธ์–ด ์ˆ˜์‹๊ณผ ์—ฐ์‚ฐ์ž์˜ ์˜๋ฏธ ํ•™์Šตํ•˜๊ธฐ

567Rabbit 2024. 6. 13. 20:57

 

์ˆ˜์‹(expression)

 

 

- ์ƒ์ˆ˜, ๋ณ€์ˆ˜, ์—ฐ์‚ฐ์ž์˜ ์กฐํ•ฉ

- ์—ฐ์‚ฐ์ž์™€ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค.

 

 

3.14 * radius

*๋Š” ์—ฐ์‚ฐ์ž์ด๊ณ   3.14, radius๋Š” ํ”ผ์—ฐ์‚ฐ์ž์ด๋‹ค.

 

 

๋‹จํ•ญ ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž ์ˆ˜๊ฐ€ 1๊ฐœ

์ดํ•ญ ์—ฐ์‚ฐ์ž : ํ”ผ์—ฐ์‚ฐ์ž ์ˆ˜๊ฐ€ 2๊ฐœ

์‚ผํ•ญ ์—ฐ์‚ฐ์ž : ์—ฐ์‚ฐ์ž์˜ ์ˆ˜๊ฐ€ 3๊ฐœ (c์–ธ์–ด์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.)

 

 

 

 

์‚ผํ•ญ์—ฐ์‚ฐ์ž

ex)

x ? y : z ;

=> x๊ฐ€ ์กฐ๊ฑด, true๋ฉด y, false๋ฉด z๊ฐ€ ๋œ๋‹ค.

 

 

์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๊ณ , ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ์ฒซ ๋ฒˆ์งธ ํ‘œํ˜„์‹(์—ฌ๊ธฐ์„œ๋Š” y)์ด ์‹คํ–‰๋˜๊ณ ,

๊ฑฐ์ง“์ด๋ฉด ๋‘ ๋ฒˆ์งธ ํ‘œํ˜„์‹(์—ฌ๊ธฐ์„œ๋Š” z)์ด ์‹คํ–‰๋œ๋‹ค.

๋”ฐ๋ผ์„œ x๊ฐ€ ์ฐธ์ด๋ฉด y๊ฐ€ ์„ ํƒ๋˜๊ณ , ๊ฑฐ์ง“์ด๋ฉด z๊ฐ€ ์„ ํƒ๋œ๋‹ค.

 

 

 

 

๊ธฐ๋Šฅ์— ๋”ฐ๋ฅธ ์—ฐ์‚ฐ์ž์˜ ๋ถ„๋ฅ˜

 

 

 

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

 

+ : ๋ง์…ˆ

- : ๋บ„์…ˆ

* : ๊ณฑ์…ˆ

/ : ๋‚˜๋ˆ—์…ˆ ๋ชซ

% : ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž(modulus operator) : ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์ž

 

 

 

 

์ฆ๊ฐ ์—ฐ์‚ฐ์ž

 

++ : 1์”ฉ ๋”ํ•œ๋‹ค

-- : 1์”ฉ ๋บ€๋‹ค

 

y=++x  ์ฆ๊ฐ€ ํ›„ ๋Œ€์ž…ํ•˜๊ณ ,

 

y=x++  ๋Œ€์ž… ํ›„, ์ฆ๊ฐ€๋œ๋‹ค.

 

 

 

 

๋Œ€์ž… ์—ฐ์‚ฐ์ž

 

- ์•„๋ž˜๋Š” ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ์ด๋‹ค.

y = x = 3

 

 

 

๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž

:  +=์ฒ˜๋Ÿผ ๋Œ€์ž…์—ฐ์‚ฐ์ž =์™€ ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž๋ฅผ ํ•ฉ์ณ๋†“์€ ์—ฐ์‚ฐ์ž์ด๋‹ค.

 

๋ณตํ•ฉ๋Œ€์ž… ์—ฐ์‚ฐ์ž          ์˜๋ฏธ

      x += 1                x = x+1

 

 

 

 

๊ด€๊ณ„ ์—ฐ์‚ฐ์ž

 

== : ๊ฐ™๋‹ค

!=  : ๋‹ค๋ฅด๋‹ค

>    : ํฌ๋‹ค

>=  : ์ด์ƒ์ด๋‹ค

<    : ์ž‘๋‹ค

<=  : ์ดํ•˜์ด๋‹ค

 

 

 

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

 

&&    AND ์—ฐ์‚ฐ      ๋‘ ์กฐ๊ฑด์ด ๋ชจ๋‘ ์ฐธ์ด์–ด์•ผ ์ฐธ์ด๋‹ค 

||       OR ์—ฐ์‚ฐ         ๋‘ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋งŒ ์ฐธ์ด์–ด๋„ ์ฐธ์ด๋‹ค

!       NOT ์—ฐ์‚ฐ      

 

NOT ์—ฐ์‚ฐ

- ๊ด€๊ณ„ ์ˆ˜์‹์ด๋‚˜ ๋…ผ๋ฆฌ ์ˆ˜์‹์ด ์ฐธ์ด๋ฉด 1์ด ์ƒ์„ฑ๋˜๊ณ  ๊ฑฐ์ง“์ด๋ฉด 0์ด ์ƒ์„ฑ๋œ๋‹ค.

- ํ”ผ์—ฐ์‚ฐ์ž์˜ ์ฐธ, ๊ฑฐ์ง“์„ ๊ฐ€๋ฆด๋•Œ๋Š” 0์ด ์•„๋‹ˆ๋ฉด ์ฐธ์ด๊ณ  0์ด๋ฉด ๊ฑฐ์ง“์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

- ์Œ์ˆ˜๋Š” ๊ฑฐ์ง“์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

 

!0    // ์‹์˜ ๊ฐ’์€ 1

!3    // ์‹์˜ ๊ฐ’์€ 0

!-3   // ์‹์˜ ๊ฐ’์€ 0

 

result = !1;              // result์—๋Š” 0์ด ๋Œ€์ž…๋œ๋‹ค

result = ! (2 == 3)   // result์—๋Š” 1์ด ๋Œ€์ž…๋œ๋‹ค

 

 

 

 

์กฐ๊ฑด ์—ฐ์‚ฐ์ž

 

absolute_value = ( x > y ) ? x : y ;  // ์ ˆ๋Œ€๊ฐ’ ๊ณ„์‚ฐ

max_value = ( x > y) ? x : y ;          // ์ตœ๋Œ€๊ฐ’ ๊ณ„์‚ฐ

min_value = ( x < y ) ? x : y ;          // ์ตœ์†Œ๊ฐ’ ๊ณ„์‚ฐ

( age > 20 ) ? printf("์„ฑ์ธ") :  printf("์ฒญ์†Œ๋…„")

 

 

 

 

 

๋น„ํŠธ ์—ฐ์‚ฐ์ž

 

๊ฐ๊ฐ์˜ ์ž๋ฆฌ์ˆ˜๋งˆ๋‹ค AND ์—ฐ์‚ฐ์„ ํ•œ๋‹ค. ์ฆ‰, ๋น„ํŠธ๋งˆ๋‹ค ์ง์ง€์–ด์„œ ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

XOR์„ ์ด์šฉํ•œ ์•”ํ˜ธํ™”

 

- ํ•˜๋‚˜์˜ ๋ฌธ์ž๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

encrpted_data = data^key; ํ•˜๋ฉด ๋œ๋‹ค.

๋ณตํ˜ธํ™”๋„ data = encrpted_data^key; ํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

๋น„ํŠธ ์ด๋™ ์—ฐ์‚ฐ์ž ( shift ์‰ฌํ”„ํŠธ ์—ฐ์‚ฐ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.)

 

- ๋น ๋ฅธ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

<< ํ•œ ์นธ์”ฉ ์™ผ์ชฝ์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด, 2๋ฐฐ ์‹œํ‚จ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

>> ํ•œ ์นธ์”ฉ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด, ๋‚˜๋ˆ„๊ธฐ 2๋ฅผ ํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

 

 

 

 

ํ˜•๋ณ€ํ™˜

- ์‹คํ–‰ ์ค‘์— ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์˜ฌ๋ฆผ๋ณ€ํ™˜

double f;

f = 10

=> 10.0์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

 

๋‚ด๋ฆผ๋ณ€ํ™˜

int i;

i = 3.141592

=> 3์œผ๋กœ ์ €์žฅ๋œ๋‹ค. (์†Œ์ˆ˜์  ์ดํ•˜ ๋ฒ„๋ฆผ์˜ ๊ธฐ๋Šฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค)

 

์ž๋™ ํ˜•๋ณ€ํ™˜

int 10 + double 1.2345

=> double 10.0 + double 1.2345  // int๊ฐ€ double ํ˜•์œผ๋กœ ์Šน๊ธ‰๋œ๋‹ค.

=> 11.2345                                     // ์ „์ฒด ์ˆ˜์‹์˜ ๊ฒฐ๊ณผ๊ฐ’๋„ double ํ˜•์ด ๋œ๋‹ค.

 

ํ˜•๋ณ€ํ™˜ ํ•˜๋Š” ๋ฐฉ๋ฒ•

(int)1.23456     // intํ˜•์œผ๋กœ ๋ณ€ํ™˜

(double) x        // doubleํ˜•์œผ๋กœ ๋ณ€ํ™˜

(long) (x+y)     // longํ˜•์œผ๋กœ ๋ณ€ํ™˜

 

 

 

 

 

๊ฒฐํ•ฉ ๊ทœ์น™

 

- ๋งŒ์•ฝ ๊ฐ™์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋Š” ์—ฐ์‚ฐ์ž๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์œผ๋ฉด ์–ด๋–ค ๊ฒƒ์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜์—ฌ์•ผ ํ•˜๋Š”๊ฐ€?์— ๋Œ€ํ•œ ๊ทœ์น™