4. ¿¬»êÀÚ¿Í ¼ö½Ä
#include <conio.h>
#include <stdio.h>
void main()
{
int i,j;
clrscr();
printf("Input Two numbers :");
scanf("%d %d", &i, &j);
printf("\ni==%d, j==%d\n\n", i, j);
printf("i+j==%d\n", i+j); /* a line */
printf("i-j==%d\n", i-j); /* b line */
printf("i*j==%d\n", i*j); /* c line */
printf("i/j==%f\n", (float)i/(float)j); /* d line */
printf("i/j==%d\n", i/j); /* d-1 line */
if (i>j) printf("i>j\n"); /* e line */
else if (i<j) printf("i<j\n"); /* f line */
else printf("i==j\n"); /* g line */
(i>j) ? printf("i>j\n") : ((i<j) ? printf("i<j\n") : printf("i==j\n")); /* h line */
}
(°á°ú)=>Input two numbers : 15 4
i==15, j==4
i+j==19
i-j==11
i*j==60
i/j==3.750000
i/j==3
i>j
i>j
|
¡¡
4-2. ¿¬»êÀÚ
C ÀÇ ¿¬»êÀÚ´Â Å©°Ô ³ª´©¾î »ê¼ú ¿¬»êÀÚ, °ü°è ¿¬»êÀÚ, »óµî¿¬»êÀÚ, ³í¸® ¿¬»êÀÚ·Î ³ª´¶´Ù. ÇÁ·Î±×·¥ ¸Àº¸±â 2¿¡¼ a, b, c, d, d-1 lineÀº µ¡¼À, »¬¼À, °ö¼À, ³ª´°¼ÀÀ» ³ªÅ¸³½ °ÍÀÌ´Ù.
¿¬»êÀÚ Á¾·ù |
¼øÀ§ |
¿¬»êÀÚµé (Operators) |
°áÇÕ ¼ø¼ |
»ê¼ú ¿¬»êÀÚ |
1 2 3 |
+(¾çÀÇ ºÎÈ£) -(À½ÀÇ ºÎÈ£) ++ -- * / % + - |
<---- ----> ----> |
°ü°è ¿¬»êÀÚ |
4 |
< <= > >= |
----> |
»óµî ¿¬»êÀÚ |
5 |
== != |
----> |
³í¸® ¿¬»êÀÚ |
6 |
&& || |
----> |
* °áÇÕ¼ø¼ : °°Àº ¿ì¼±¼øÀ§¸¦ °¡Áø ¿¬»êÀÚµéÀÌ °è»êÀ» ÇÒ ¶§ÀÇ ¹æÇâ(direction)À» ¸»ÇÑ´Ù.
¡¡
* »çÄ¢ ¿¬»êÀÚ : µ¡¼À(+), »¬¼À(-), °ö¼À(*), ³ª´°¼À(/)
¡¡
* ³ª¸ÓÁö ¿¬»êÀÚ : ³ª¸ÓÁö ¿¬»êÀÚ(%)
- µÎ °³ÀÇ Á¤¼öÇüÀÇ ³ª´°¼À¿¡¼ ³ª¸ÓÁö¸¦ ±¸ÇÏ´Â ¿¬»êÀÚ
¡¡
* ºÎÈ£ ¿¬»êÀÚ : ¾ç¼ö ¿¬»êÀÚ(+), À½¼ö ¿¬»êÀÚ(-)
- ÇÇ¿¬»êÀÚ(Operand) ÇÑ °³¿¡ Àû¿ëµÇ¾î ºÎÈ£¸¦ ¹Ù²Ù¾î ÁØ´Ù.
¡¡
* Áõ°¨ ¿¬»êÀÚ : Áõ°¡ ¿¬»êÀÚ(++), °¨¼Ò ¿¬»êÀÚ(--)
- ÇÇ¿¬»êÀÚ¸¦ Çϳª¸¸ ÃëÇÏ´Â ´ÜÇ× ¿¬»êÀÚÀ̸ç, ÇÇ¿¬»êÀÚÀÇ °ªÀ» Çϳª Áõ°¡½ÃŰ°Å³ª °¨¼Ò½ÃŲ´Ù.
¿¬»êÀÚ°¡ ºÙ´Â À§Ä¡¿¡ µû¶ó º¯¼ö ¾Õ¿¡ ºÙÀ¸¸é ÀüÀ§Çü, µÚ¿¡ ºÙÀ¸¸é ÈÄÀ§ÇüÀ̶ó ÇÑ´Ù.
<ÀüÀ§Çü(prefix)> a = 10; b = ++a; ÀÇ¹Ì : ¸ÕÀú a¸¦ Áõ°¡ => b¿¡ ´ëÀÔ °á°ú : a == 11, b == 11 |
<ÈÄÀ§Çü(postfix)> a = 10; b = a++; ÀÇ¹Ì : ¸ÕÀú a¸¦ b¿¡ ´ëÀÔ => aÁõ°¡ °á°ú : a == 11, b == 10 |
¡¡
°ü°è ¿¬»êÀÚ¿¡´Â À§ÀÇ Ç¥¿¡ ³ª¿Â °Íó·³ 4°¡Áö°¡ ÀÖ°í, ÇÇ¿¬»êÀÚ·Î ¼ö½Ä(expression)À» ÃëÇϸç Á¤¼öÇü °ªÀÎ 0À̳ª 1À» °¡Áø´Ù. °¡·É a<b ÀÎ ¼ö½ÄÀ» ¿¹·Î µé¾îº¸ÀÚ. ¸¸¾à a<b °¡ Âü(true)ÀÌ¸é ¼ö½ÄÀº 1ÀÇ °ªÀ» °¡Áö¸ç, °ÅÁþ(false) À̸é 0ÀÇ Á¤¼ö°ªÀ» °¡Áø´Ù. (e, f line ÂüÁ¶)
¡¡
»óµî ¿¬»êÀÚµµ µÎ °³ÀÇ ¼ö½Ä¿¡¼ ÀÛ¿ëÀ» Çϸç 0À̳ª 1ÀÇ °ªÀ» ¸¸µå´Â ÀÌÇ×(binary) ¿¬»êÀÚÀÌ´Ù. a == b ¶ó´Â ¿¹¿¡¼ ¼ö½Ä a¿Í b°¡ ¼·Î °°À¸¸é Âü(1ÀÇ °ª)ÀÌ µÇ°í, ´Ù¸£¸é °ÅÁþ(0ÀÇ °ª)ÀÌ µÈ´Ù. a != b ´Â ¼ö½Ä a¿Í b°¡ ¼·Î ´Ù¸£¸é ÂüÀÌ µÈ´Ù.
* Âü°í·Î ´ÙÀ½ µÎ ½ÄÀº ¼·Î µ¿ÀÏÇÏ´Ù.
a != b <=> !(a == b)
¡¡
* ³í¸® ºÎÁ¤ (!) - NOT
- ¼ö½ÄÀÌ 0ÀÇ °ªÀ» °¡Áö°í ÀÖÀ» ¶§, ³í¸® ºÎÁ¤À» ½Ã۸é 1ÀÌ µÇ°í, ¹Ý´ë·Î 0ÀÌ ¾Æ´Ñ °ªÀ» °¡Áö
°í ÀÖÀ» ¶§, ÀÌ ¿¬»êÀÚ¸¦ »ç¿ëÇϸé 0ÀÌ µÈ´Ù.
¡¡
* ³í¸® °ö(&&) - AND
¡¡
* ³í¸® ÇÕ(||) - OR
* C¿¡´Â ³í¸® XOR ¿¬»êÀÚ°¡ ¾ø´Ù. ±×·¸Áö¸¸ ºñÆ® XOR ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸é °£´ÜÇÏ°Ô ³í¸® XOR ¿¬»êÀÚ¸¦ ±¸ÇöÇÒ ¼ö°¡ ÀÖ´Ù. ¸¸¾à ¼ö½Ä op1°ú op2°¡ 0°ú 1¸¸ÀÇ °ªÀ» °¡Áø´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÏ ¸é µÈ´Ù.
if ((op1)^(op2)) ......
¸¸¾à op1°ú op2°¡ 0°ú 1 ÀÌ¿ÜÀÇ °ªÀ» °¡ÁúÁöµµ ¸ð¸¥´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
if ((op1)!=0 ^ (op2)!=0) .......
¡¡
* short circuit ±â´É
- C¿¡¼ ³í¸®½ÄÀº °áÇÕ¼ø¼·Î º¸¾Æ¼ ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î(--->) Æò°¡µÈ´Ù. ÀÌ ¶§ && ¿¬»êÀÚ Áº¯ÀÇ ¼ö½ÄÀÌ ³í¸®ÀûÀ¸·Î ÀÌ¹Ì °ÅÁþÀ» °æ¿ì¿¡´Â ¿ìº¯À» ¾Æ¿¹ Æò°¡ÇÏÁö ¾Ê´Â´Ù. ¶ÇÇÑ, || ¿¬»êÀÚ Áº¯ÀÇ ¼ö½ÄÀÌ ³í¸®ÀûÀ¸·Î ÂüÀÏ °æ¿ì¿¡µµ ¿ìº¯ÀÇ ¼ö½ÄÀ» Æò°¡ÇÏÁö ¾Ê´Â´Ù.
¡¡
* ´ëÀÔ ¿¬»êÀÚ(=)´Â ¿ìº¯ÀÇ ¼ö½ÄÀÇ °ªÀ» Áº¯ÀÇ º¯¼ö(¶Ç´Â ´ëÀÔ°¡´ÉÇÑ ¸ðµç °Í)¿¡ ´ëÀÔÇÏ´Â ¿¬»êÀÚÀÌ´Ù. °áÇÕ¼ø¼´Â <--- ÀÌ´Ù.
first = 0; second = 0; third = 0; |
<=> |
third = second = first = 0; |
a = 0; b = a+1; c = b+2; |
<=> |
c = (b = (a = 0) + 1) + 2; |
* C¿¡´Â op= °ú °°Àº ÇüÅÂÀÇ ´ëÀÔ ¿¬»êÀÚ°¡ Àִµ¥, op °¡ µÉ ¼ö ÀÖ´Â ¿¬»êÀÚ´Â ¾Æ·¡¿Í °°ÀÌ »ê¼ú ¿¬»êÀÚ¿Í ºñÆ® ¿¬»êÀÚ(´ÜÇ× ¿¬»êÀÚ ~¸¸ Á¦¿Ü) 10°³ÀÌ´Ù.
+ - * / % << >> & ^ |
a = a + 2; a += 2; test = test / 3; <=> test /= 3; j= j % 8; j %= 8; |
¡¡
d line°ú d-1 lineÀ» ºñ±³ÇØ º¸ÀÚ. i, j ´Â ¸ðµÎ Á¤¼öÇüÀÌ´Ù. C´Â Á¤¼ö³¢¸® ³ª´°¼ÀÀ» ÇÏ¿© ³ª¸ÓÁö°¡ »ý±â´õ¶óµµ ½Ç¼ö°¡ µÇÁö¾Ê°í Á¤¼ö°¡ µÇ¾î¹ö¸°´Ù. ±×°ÍÀº C°¡ ¼Ò¼öÁ¡ ÀÌÇÏ´Â ¹Ý¿Ã¸²ÇÏÁö ¾Ê°í °ú°¨È÷ Àß¶ó¹ö¸®±â ¶§¹®ÀÌ´Ù. µû¶ó¼,
5. / 4 ´Â 1.25 À̰í, 1. / 2 ´Â .5 À̸ç,
5. / 4 µµ 1.25 À̰í, 1. / 2. µµ .5 ÀÌÁö¸¸,
5 / 4 ´Â 1 À̰í, 1 / 2 ´Â 0 ÀÌ´Ù.
À§ÀÇ ¿¹¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç »çÄ¢¿¬»ê¿¡¼ ÁÖÀÇÇÒ Á¡Àº ÇÇ¿¬»êÀÚ µÑ Áß¿¡ ¾î´À Çϳª¶óµµ double ÇüÀÌ¸é ´Ù¸¥ ÇϳªÀÇ ÇÇ¿¬»êÀÚ´Â ±× µ¥ÀÌÅÍÇüÀÌ ¹«¾ùÀÌµç °£¿¡ double ÇüÀ¸·Î ÀÚµ¿ º¯È¯µÈ´Ù.
d-1 lineÀº °á°ú°¡ Á¤¼öÇüÀ¸·Î ³ª¿ÔÁö¸¸, d lineÀº º¯¼ö i, j ¸ðµÎ Á¤¼öÇüÀÌÁö¸¸ °á°ú´Â float ÇüÀ¸·Î ³ª¿Ô´Ù. À̰ÍÀº º¯¼ö i, j ¾Õ¿¡ (float)¶ó´Â ij½ºÆ® ¿¬»êÀÚ¸¦ µ¡ºÙ¿´±â ¶§¹®ÀÌ´Ù. ÀÌó·³ óÀ½¿¡ Á¤ÀÇÇÑ µ¥ÀÌÅÍÇü°ú ´Ù¸¥ µ¥ÀÌÅÍÇüÀ¸·Î »ç¿ëÇÒ Çʿ䰡 ÀÖÀ» ¶§ ij½ºÆ® ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ´Ù. À̶§ º¯¼ö i¿Í j´Â Àӽ÷ΠÇüº¯È¯ÀÌ ÀÏ¾î³ °ÍÀ̱⠶§¹®¿¡ º¯¼öÀÇ °ªÀ̳ª Çü ÀÚü´Â º¯ÇÏÁö ¾Ê´Â´Ù. CÀÇ Ä³½ºÆ® ¿¬»êÀÚ´Â ¸ðµç µ¥ÀÌÅÍÇü°£ÀÇ Çüº¯È¯ÀÌ °¡´ÉÇÏ°í ½ÉÁö¾î´Â Æ÷ÀÎÅÍÇü°£ÀÇ Çüº¯È¯µµ °¡´ÉÇÏ´Ù.
g) Á¶°Ç ¿¬»êÀÚ (expr1 ? expr2 : expr3)
if (a>b) max = a; <=> max = (a>b) ? a : b else max = b; |
if-else ¹®Àº Á¦¾î¹®ÀÇ ÀÏÁ¾À̸ç, if ´ÙÀ½ÀÇ Á¶°ÇÀÌ ÂüÀ̸é Á¶°Ç ´ÙÀ½ÀÇ ¹®ÀåÀ» ½ÇÇàÇÏ°í °ÅÁþÀ̸é else ´ÙÀ½ÀÇ ¹®ÀåÀ» ½ÇÇàÇÑ´Ù. else¹®Àº µÚ¿¡ °è¼Ó µ¡ºÙÀÏ ¼ö ÀÖ´Ù.
Á¶°Ç ¿¬»êÀÚ´Â if-else ¹®°ú °°Àº ¿ªÇÒÀ» ÇÏ´Â ¿¬»êÀÚÀ̸ç, ÇÇ¿¬»êÀÚ¸¦ 3°³³ª ÃëÇÑ´Ù. expr1À̶ó´Â Á¶°ÇÀÌ ÂüÀ̸é expr2½ÄÀ» ½ÇÇàÇÏ°í °ÅÁþÀ̸é expr3½ÄÀ» ½ÇÇàÇÑ´Ù.
À§ÀÇ ÇÁ·Î±×·¥ ¸Àº¸±â2 ¿¡¼µµ e, f, g line°ú h lineÀº °°Àº ½ÄÀ̸ç, À̶§ h lineÀº Á¶°Ç¼ö½ÄÀÌ ÁßøµÇ¾î ÀÖ´Â ÇüÅÂÀÌ´Ù. °¡±ÞÀûÀ̸é Á¶°Ç¼ö½ÄÀ» ÁßøÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁÀºµ¥, ÀÌ´Â ¼ö½ÄÀÌ ÁßøµÇ¾î ÀÖÀ¸¸é °áÇÕ¼ø¼(¡£--)¿¡ ÀÖ¾î¼ ±× °á°ú¸¦ ¿¹ÃøÇϱⰡ °ï¶õÇØÁö±â ¶§¹®ÀÌ´Ù. À§ÀÇ h line ó·³ °á°ú¸¦ ¿¹ÃøÇϱ⠽±°í °áÇÕ¼ø¼¿¡ °ü°è¾øÀÌ °°Àº °á°ú°¡ ³ª¿À¸é »ó°ü¾øÁö¸¸, Á¶°Ç¼ö½ÄÀÌ ÁßøµÇ´Â °æ¿ì°¡ ÀÖ´Ù¸é, °ýÈ£°¡ ÇÊ¿ä¾ø´Â °æ¿ì¶óµµ ¾Ë¾Æº¸±â ÆíÇÏ°Ô °ýÈ£¸¦ ÇØÁÖ´Â °ÍÀÌ ÁÁ´Ù. ½ÇÁ¦·Î h lineÀÌ ¾î¶»°Ô Àü°³µÇ´ÂÁö »ìÆìº¸¸é i==15, j==4 ¿´À¸¹Ç·Î
(i>j) ? printf("i>j\n") : (i<j) ? printf("i<j\n") : printf("i==j\n");
(i>j) ? printf("i>j\n") : printf("i==j\n");
°á°ú´Â (i>j) °¡ ÂüÀ̹ǷΠprintf("i>j\n"); °¡ ½ÇÇàµÈ´Ù.
¡¡
½°Ç¥ ¿¬»êÀÚ´Â , ·Î ºÐ¸®µÇ´Â ¼ö½ÄµéÀ» °áÇÕ¼ø¼¿¡ µû¶ó¼ °¡Àå ¿ÞÂÊÀÇ ¼ö½ÄºÎÅÍ Â÷·ÊÂ÷·Ê Æò°¡Çϸç, °¡Àå ¿À¸¥ÂÊ ¼ö½ÄÀÇ °ªÀ» ½°Ç¥ ¿¬»ê½ÄÀÇ °á°ú°ªÀ¸·Î ÃëÇÑ´Ù.
void main()
{
int a, b, c, d;
d = ( a=5, b=3, c=4 ); /* °¡Àå ¿À¸¥ÂÊ °ªÀÎ 4°¡ d¿¡ ´ëÀԵȴÙ. */
printf("%d %d %d %d\n", a, b, c, d);
}
(°á°ú) =>5 3 4 4
¡¡
½°Ç¥ ¿¬»êÀÚÀÇ ¿ëµµ´Â ´ë°³ 2°¡Áö·Î ³ª´¶´Ù.
¨ç for ¼øÈ¯¹®ÀÇ ·çÇÁ Á¦¾îº¯¼ö°¡ µÎ °³ ÀÌ»óÀÏ ¶§
¨è µÎ °³ÀÇ ´ëÀÔ½ÄÀ» ÇϳªÀÇ ¼ö½ÄÀ¸·Î ¾ÐÃàÇÏ°í ½ÍÀ» ¶§
¡¡
void main() /* ¨è ÀÇ ¿¹ */
{
int x, y;
x = (y = 0, y + 5);
printf("x = %d y = %d\n", x, y);
}
(°á°ú) =>x = 5 y = 0
¡¡
À§ÀÇ ¿¹¿¡¼ ½°Ç¥ ¿¬»êÀÚ¿¡ ÀÇÇØ ´ëÀÔ½Ä y=0 ÀÌ ¸ÕÀú Æò°¡µÇ°í ,´ÙÀ½¿¡ »ê¼ú½Ä y+5 °¡ Æò°¡µÇ¾î ½°Ç¥ ¿¬»ê½ÄÀº y+5 == 0+5 == 5 ¶ó´Â °ªÀ» °¡Áö°Ô µÈ´Ù.
¡¡
* 1ÀÇ º¸¼ö ( ~ )
- ~ ¿¬»êÀÚ´Â ÈçÈ÷ º¸¼ö ¿¬»êÀÚ¶ó°í ºÎ¸¥´Ù. ±×·±µ¥ ¾ö¹ÐÇÏ°Ô º¸¼ö¿¡ ´ëÇØ¼ À̾߱âÇϸé ÀÏÀÇ º¸¼ö¸¦ ¸»ÇÑ´Ù. 1ÀÇ º¸¼ö¶ó´Â °ÍÀº 2Áø¼ö¿¡¼ 1Àº 0À¸·Î, 0Àº 1·Î ¹ÝÀü½ÃŰ´Â °ÍÀ» ¸»ÇÑ´Ù.
¿¹) int a = 7; =(2Áø¼ö·Î °íÄ¡¸é)=> 00000000 00000111
~a == 11111111 11111000 /* aÀÇ 1ÀÇ º¸¼ö */
* 2ÀÇ º¸¼ö
- ÄÄÇ»ÅÍÀÇ ¿¬»êÀº »ç½Ç 2ÀÇ º¸¼ö¸¦ »ç¿ëÇÑ´Ù. 2ÀÇ º¸¼ö´Â 1ÀÇ º¸¼ö¿¡ 1¸¸ ´õÇÏ¸é µÈ´Ù.
2ÀÇ º¸¼ö¸¦ »ç¿ëÇÏ´Â ÄÄÇ»ÅÍ´Â ÀÌ ¿¬»êÀ» »ç¿ëÇØ¼ À½¼ö°¡ ¾Æ´Ñ ¼ö¸¦ À½¼ö·Î ¹Ù²Ù´Â ±â´Éµµ ÇÑ´Ù. À§ÀÇ ¿¹¿¡¼ aÀÇ 2ÀÇ º¸¼ö´Â 11111111 11111001 (== -7 ) ÀÌ µÈ´Ù.
¡¡
* ºñÆ® ³í¸® ¿¬»êÀÚ
- ºñÆ® ¿¬»êÀÚÀÎ & ^ | ´Â ÀÌÁøÇ¥Çö¿¡¼ »ç¿ëµÈ´Ù. 2°³ÀÇ ÇÇ¿¬»êÀÚ¸¦ ÇÊ¿ä·Î Çϴµ¥, °¢°¢¿¡ ´ëÇÏ¿© ºñÆ®º°·Î ±â´ÉÀ» ÇÑ´Ù.
a |
b |
a & b (ºñÆ® AND) |
a ^ b (ºñÆ® XOR) |
a | b (ºñÆ® OR) |
0 1 0 1 |
0 0 1 1 |
0 0 0 1 |
0 1 1 0 |
0 1 1 1 |
* Á¿ìÃø shift ¿¬»êÀÚ
- shift ¿¬»êÀÚ´Â º¯¼ö¿¡ ÀÖ´Â ¸ðµç ºñÆ®µéÀ» ¿ìÃøÀ̳ª ÁÂÃøÀ¸·Î À̵¿½ÃŲ´Ù. ÀϹÝÀûÀÎ ÇüÅÂÀÇ shift ¿¬»êÀÚÀÇ ¾²ÀÓ»õ´Â ´ÙÀ½°ú °°´Ù.
º¯¼ö >> ¿À¸¥ÂÊÀ¸·Î À̵¿½Ãų º¯¼öÀÇ °³¼ö
º¯¼ö << ¿ÞÂÊÀ¸·Î À̵¿½Ãų º¯¼öÀÇ °³¼ö
ºüÁ®³ª°£ ºñÆ®´Â ¾ø¾îÁö¹Ç·Î, »õ·Î µé¾î¿À´Â ÂÊÀº 0À¸·Î ä¿öÁø´Ù. ÁÖÀÇÇÒ Á¡Àº ºüÁ®³ª°£ ºñ
Æ®°¡ ´Ù½Ã ¹Ý´ëÂÊÀ¸·Î µé¾î¿ÀÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. ¾Æ·¡ÀÇ Ç¥¿¡¼ º¸¸é ¿ÞÂÊÀ¸·Î shift ½Ã۸é
2¸¦ °öÇÑ °á°ú°¡ µÇ°í, ¿À¸¥ÂÊÀ¸·Î shift ½Ã۸é 2·Î ³ª´« °á°ú°¡ µÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
char x; |
ÀÌÁøÇüÅÂÀÇ x |
xÀÇ °ª |
x = 7; x << 1; x << 3; x >> 1; x >> 4; |
00000111 00001110 01110000 00111000 00000011 |
7 14 112 56 3 |
int a = 1 << 15; unsigned b = 1 << 15; |
|
a b a >> 3 b >> 3 |
10000000 00000000 10000000 00000000 11110000 00000000 00010000 00000000 |
shift ¿¬»êÀÚ¸¦ ¾µ¶§ Á¶½ÉÇØ¾ß ÇÒ °ÍÀÌ ÀÖ´Ù. º¯¼öÀÇ Çü¿¡ µû¶ó ¿À¸¥ÂÊ shift ¿¬»êÀÚ°¡ ¿øÇÏ´Â °á°ú¸¦ ¸¸µéÁö ¾Ê´Â °æ¿ì°¡ Àֱ⠶§¹®ÀÌ´Ù. ¼³¸íÇÏÀÚ¸é º¯¼öÀÇ ÇüÀÌ ¾î¶°³Ä¿¡ µû¶ó »çÀκñÆ®ÀÇ À̵¿¿¡ Â÷À̰¡ ÀÖÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. Áï, unsigned ÇüÀ¸·Î ¼±¾ðµÈ º¯¼öÀÇ »çÀκñÆ®°¡ 1·Î µÇ¾îÀÖÀ» ¶§ ¿À¸¥ÂÊÀ¸·Î shift ½ÃŰ¸é ±×³É È¥ÀÚ À̵¿ÇÏÁö¸¸, int ÇüÀ¸·Î ¼±¾ðµÈ º¯¼ö¿Í °°Àº °æ¿ì´Â °è¼Ó »çÀκñÆ®¸¦ 1·Î À¯ÁöÇÏ¸é¼ À̵¿À» ½ÃŲ´Ù. ¶Ç ¸¶Âù°¡Áö·Î ºÎÈ£°¡ ÀÖ´Â ÇüÀÇ ¿ÞÂÊ shift ¿¬»êÀÇ °æ¿ì ºÎÈ£°¡ ¹Ù²î´Â ¼öµµ ÀÖ´Ù. ±×·¡¼ shift ¿¬»êÀÚ´Â °¡±ÞÀû ºÎÈ£¾ø´Â ÇüÀÇ µ¥ÀÌÅÍÇü¿¡¸¸ ¾²µµ·Ï ÇÑ´Ù.
¡¡
C ¾ð¾î¿¡´Â sizeof ¶ó´Â ´ÜÇ× ¿¬»êÀÚ°¡ ÀÖ¾î¼ ¾î¶² ´ë»ó¹°À» ÁöÁ¤ÇÏ¸é ±×°Í¿¡ ÇÒ´çµÈ ¸Þ¸ð¸® Å©±â¸¦ ¾Ë·ÁÁØ´Ù. ±× ´ë»ó¹°·Î´Â int ³ª float µîÀÇ µ¥ÀÌÅÍÇüÀÌ µÉ ¼öµµ ÀÖ°í, a+b µîÀÇ ¼ö½ÄÀÌ µÉ ¼öµµ ÀÖ´Ù. ÀϹÝÀûÀÎ »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.
sizeof ¼ö½Ä ¶Ç´Â sizeof(µ¥ÀÌÅÍÇü)
µ¥ÀÌÅÍÇüÀÇ Å©±â¸¦ ¾Ë°í ½ÍÀ¸¸é °ýÈ£¸¦ ¹Ýµå½Ã ½á¾ßÇÏÁö¸¸, ¼ö½ÄÀÎ °æ¿ì¿¡´Â °ýÈ£¸¦ ½áµµ µÇ°í ¾È½áµµ µÈ´Ù. Âü°í·Î ÀÌ ¿¬»êÀÚ°¡ ¸®ÅÏÇÏ´Â ÇüÀº unsigned ÇüÀÌ´Ù.
¿¬»ê¼øÀ§ |
¿¬»êÀÚ |
°áÇÕ¼ø¼ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
( ) [ ] -> . ! ~ ++ -- - + (type) * & sizeof * / % + - << >> < <= > >= == != & ^ | && || ? : = op= , |
--> <-- --> --> --> --> --> --> --> --> --> --> <-- <-- --> |
* ¼øÀ§ 1 : ->(±¸Á¶Ã¼ Æ÷ÀÎÅÍ ¿¬»êÀÚ) .(±¸Á¶Ã¼ ¿¬»êÀÚ)
* ¼øÀ§ 2 : ~(1ÀÇ º¸¼ö ¿¬»êÀÚ) - +(ºÎÈ£ ¿¬»êÀÚ) *(°£Á¢ÁöÁ¤ ¿¬»êÀÚ) &(¹øÁö ¿¬»êÀÚ)
* ¼øÀ§ 3, 4 : * / % + -(»ê¼ú ¿¬»êÀÚ)
* ¼øÀ§ 8 : & (ºñÆ® AND ¿¬»êÀÚ)
* ¼øÀ§ 9 : ^ (ºñÆ® XOR ¿¬»êÀÚ)
* ¼øÀ§ 10 : | (ºñÆ® OR ¿¬»êÀÚ)
* ¼øÀ§ 11 : && (³í¸® AND ¿¬»êÀÚ - ³í¸®°ö)
* ¼øÀ§ 12 : || (³í¸® OR ¿¬»êÀÚ - ³í¸®ÇÕ)
* ¼øÀ§ 15 : , (½°Ç¥ ¿¬»êÀÚ)