¢Ê 5ÀÏ: ´ÜÇ׿¬»êÀÚ - »ó¼ö¼ö½Ä


  ¢¹ A7.4 ´ÜÇ׿¬»êÀÚ (Unary Operator)
  ´ÜÇ׿¬»êÀÚ°¡ ÀÖ´Â ¼ö½ÄÀº ¿À¸¥ÂÊ¿¡¼­ ¿ÞÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù.

unary-expression:
        postfix-expression
        ++ unary-expression
        -- unary-expression
        unary-operator cast-expression
        sizeof unary-expression
        sizeof ( type-name )

unary-operator:  one of
        &   *   +   -   ~   !

¢¹ A7.4.1 Á¢µÎ Áõ°¡¿¬»êÀÚ (Prefix Incrementation Operator)
  ++ ³ª -- ¿¬»êÀÚ°¡ ¾Õ¿¡ ºÙ´Â ¼ö½ÄÀº ´ÜÇ×¼ö½Ä (unary expression) ÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â 1 ¸¸Å­ Áõ°¡(++)µÇ°Å³ª °¨¼Ò(--)µË´Ï´Ù. ¼ö½ÄÀÇ °ªÀº Áõ°¨Ã³¸®µÈ °ªÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â Áº¯°ªÀ̾î¾ß ÇÕ´Ï´Ù; ÇÇ¿¬»êÀÚ¿Í ¿¬»êÀÚÀÇ ¼¼¼¼ÇÑ °Íµé¿¡ ´ëÇÑ Á¦¾àÀº µ¡¼À¿¬»êÀÚ (A7.7) ¿Í ´ëÀÔ¿¬»êÀÚ (A7.17) ¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù. °á°ú´Â Áº¯°ªÀÌ ¾Æ´Õ´Ï´Ù.

¢¹ A7.4.2 ¹øÁö¿¬»êÀÚ (Address Operator)
  ´ÜÇ× & ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚÀÇ ÁÖ¼Ò(¹øÁö)¸¦ ÃëÇÕ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â ºñÆ®Çʵå (bit-field) ³ª register ·Î ¼±¾ðµÈ ´ë»óü¸¦ ÂüÁ¶ÇÏÁö ¾Ê´Â Áº¯°ªÀ̰ųª ȤÀº ÇÔ¼öÇüÀ̾î¾ß ÇÕ´Ï´Ù. °á°ú´Â Áº¯°ª¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ´ë»óü³ª ÇÔ¼öÀÇ, Æ÷ÀÎÅÍÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÌ T ¶ó¸é, °á°ú´Â TÇü Æ÷ÀÎÅÍÀÔ´Ï´Ù.

¢¹ A7.4.3 °£Á¢ÁöÁ¤ ¿¬»êÀÚ (Indirection Operator)
  ´ÜÇ× * ¿¬»êÀÚ´Â °£Á¢ÁöÁ¤À» ÀǹÌÇϰí, ÇÇ¿¬»êÀÚ°¡ °¡¸£Å°´Â ´ë»óü³ª ÇÔ¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù. ¸¸¾à ÇÇ¿¬»êÀÚ°¡ »ê¼úÇü, ±¸Á¶Ã¼, °ø¿ëü, Æ÷ÀÎÅ͸¦ °¡¸£Å°´Â Æ÷ÀÎÅͶó¸é °á°ú´Â Áº¯°ªÀÔ´Ï´Ù. ¼ö½ÄÀÇ µ¥ÀÌÅÍÇüÀÌ "TÇü Æ÷ÀÎÅÍ" ¶ó¸é °á°úÀÇ µ¥ÀÌÅÍÇüÀº TÇüÀÔ´Ï´Ù.

¢¹ A7.4.4 ´ÜÇ× Ç÷¯½º ¿¬»êÀÚ (Unary Plus Operator)
  ´ÜÇ× + ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̾î¾ß ÇÏ°í °á°ú´Â ÇÇ¿¬»êÀÚÀÇ °ª ±×´ë·Î ÀÔ´Ï´Ù. Á¤¼öÇü ÇÇ¿¬»êÀÚ (integral) ´Â Á¤¼öÁø±Þ (integral promotion) À» °ÅĨ´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº Áø±ÞµÈ (promoted) ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.

  ´ÜÇ× + ¿¬»êÀÚ´Â ANSI Ç¥Áؾȿ¡¼­ »õ·Î¿î °ÍÀÔ´Ï´Ù. ´ÜÇ× - ¿¬»êÀÚ¿ÍÀÇ ´ëμºÀ» À§ÇØ »õ·Ó°Ô Ãß°¡µÇ¾ú½À´Ï´Ù.

¢¹ A7.4.5 ´ÜÇ× ¸¶À̳ʽº ¿¬»êÀÚ (Unary Minus Operator)
  ´ÜÇ× - ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̾î¾ß ÇÏ°í °á°ú´Â ÇÇ¿¬»êÀÚÀÇ À½¼ö°ª ÀÔ´Ï´Ù. Á¤¼öÇü ÇÇ¿¬»êÀÚ (integral) ´Â Á¤¼öÁø±Þ (integral promotion) À» °ÅĨ´Ï´Ù. ºÎÈ£¾ø´Â °ªÀÇ À½¼ö°ª (the negative of an unsigned quantity) Àº Áø±ÞµÈ µ¥ÀÌÅÍÇüÀÇ ÃÖ´ë°ª¿¡¼­ Áø±ÞµÈ °ªÀ» »©°í 1À» ´õÇØ¼­ ±¸ÇÕ´Ï´Ù; ÇÏÁö¸¸ 0 ÀÇ À½¼ö°ªÀº 0 ÀÔ´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº Áø±ÞµÈ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.

¢¹ A7.4.6 1ÀÇ º¸¼ö ¿¬»êÀÚ (One's Complement Operator)
  ´ÜÇ× ~ ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â Á¤¼öÇü (integral) À̾î¾ß Çϰí, °á°ú´Â ÇÇ¿¬»êÀÚÀÇ 1ÀÇ º¸¼öÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚ¿¡´Â Á¤¼öÁø±ÞÀÌ ÀϾ´Ï´Ù. ¸¸¾à ÇÇ¿¬»êÀÚ°¡ ºÎÈ£¾ø´Â ÇüÀ̸é, °á°ú´Â Áø±ÞµÈ µ¥ÀÌÅÍÇüÀÇ ÃÖ´ë°ª¿¡¼­ ±× °ªÀ» »©¼­ ±¸ÇÕ´Ï´Ù. ¸¸¾à ºÎÈ£ÀÖ´Â ÇÇ¿¬»êÀÚ¶ó¸é ´ëÀÀÇÏ´Â ºÎÈ£¾ø´Â ÇüÀ¸·Î º¯È¯Çؼ­ ~ ¿¬»êÀÚ¸¦ Àû¿ëÇÑ ÈÄ¿¡ ´Ù½Ã ºÎÈ£ÀÖ´Â ÇüÀ¸·Î µÇµ¹·Á ±¸ÇÕ´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº Áø±ÞµÈ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.

¢¹ A7.4.7 ³í¸® ºÎÁ¤ ¿¬»êÀÚ (Logical Negation Operator)
  ! ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̰ųª Æ÷ÀÎÅÍ¿©¾ß Çϰí, °á°ú´Â ÇÇ¿¬»êÀÚ°¡ 0 À̸é 1 À̰í, ¾Æ´Ï¶ó¸é 0 ÀÔ´Ï´Ù. °á°ú´Â int ÇüÀÔ´Ï´Ù.

¢¹ A7.4.8 sizeof ¿¬»êÀÚ (Sizeof Operator)
  sizeof ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚ µ¥ÀÌÅÍÇüÀÇ ´ë»óü¸¦ ÀúÀåÇϴµ¥ ÇÊ¿äÇÑ ¹ÙÀÌÆ®¼ö¸¦ °è»êÇØ ÁÝ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â °è»êµÇÁö ¾ÊÀº (not evaluated) ¼ö½ÄÀ̰ųª °ýÈ£¿¡ ½×ÀÎ µ¥ÀÌÅÍÇü À̸§ÀÔ´Ï´Ù. sizeof ¿¬»êÀÚ°¡ char ¿¡ Àû¿ëµÈ´Ù¸é °á°ú´Â 1 ÀÔ´Ï´Ù; ¹è¿­¿¡ Àû¿ëÇßÀ» ¶§´Â ¹è¿­ÀÇ ÃÑ ¹ÙÀÌÆ®¼ö°¡ µË´Ï´Ù. ±¸Á¶Ã¼³ª °ø¿ëü¿¡ Àû¿ëÇßÀ» ¶§ÀÇ °á°ú´Â, ´ë»óü¸¦ ¹è¿­ÀÇ ¿ä¼Ò·Î ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ ºó°ø°£ (padding) À» Æ÷ÇÔÇÑ ¹ÙÀÌÆ®¼ö ÀÔ´Ï´Ù: n °³ÀÇ ¿ä¼Ò (element) ¸¦ °®´Â ¹è¿­ÀÇ Å©±â´Â ÇÑ ¿ä¼ÒÀÇ Å©±â¿¡ n À» °öÇÑ °ÍÀÔ´Ï´Ù. sizeof ¿¬»êÀÚ´Â ÇÔ¼ö³ª ºÒ¿ÏÀüÇÑ µ¥ÀÌÅÍÇü (incomplete type), ºñÆ®Çʵ忡´Â Àû¿ëµÉ ¼ö ¾ø½À´Ï´Ù. ¿¬»êÀÇ °á°ú´Â ºÎÈ£¾ø´Â Á¤¼ö»ó¼ö (integral) ÀÌÁö¸¸, Á¤È®ÇÑ µ¥ÀÌÅÍÇüÀº ÄÄÆÄÀÏ·¯¸¶´Ù ´Ù¸¨´Ï´Ù (implementation-defined). Ç¥ÁØ Çì´õÆÄÀÏ <stddef.h> ¿¡´Â ÀÌ µ¥ÀÌÅÍÇüÀÌ size_t ¶ó´Â µ¥ÀÌÅÍÇüÀ¸·Î Á¤ÀǵǾî ÀÖ½À´Ï´Ù. (ºÎ·Ï B Âü°í)

¢¹ A7.5 ij½ºÆ® (Cast)
  µ¥ÀÌÅÍÇüÀÇ À̸§ÀÌ °ýÈ£¿¡ ½×¿© ¼±ÇàµÇ´Â ´ÜÇ× ¼ö½ÄÀº, ¼ö½ÄÀÇ °ªÀ» ±× µ¥ÀÌÅÍÇüÀ¸·Î º¯È¯ÇØ ÁÝ´Ï´Ù.

cast-expression:
        unary-expression
        ( type-name ) cast-expression

ÀÌ·¯ÇÑ ±¸Á¶¸¦ ij½ºÆ® (cast) ¶ó°í ÇÕ´Ï´Ù. µ¥ÀÌÅÍÇü¸í (type name) Àº A8.8 Àý¿¡¼­ ¼³¸íÇÕ´Ï´Ù. º¯È¯ÀÇ ¿µÇâÀº A6 Àý¿¡¼­ ¼³¸íÇß½À´Ï´Ù. ij½ºÆ®µÈ ¼ö½ÄÀº Áº¯°ªÀÌ ¾Æ´Õ´Ï´Ù.

¢¹ A7.6 °ö¼À¿¬»êÀÚ (Multiplicative Operator)
  *, /, % °°Àº °ö¼À¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù.

multiplicative-expression:
        cast-expression
        multiplicative-expression * cast-expression
        multiplicative-expression / cast-expression
        multiplicative-expression % cast-expression

  * ¿Í / ÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̾î¾ß ÇÕ´Ï´Ù; % ÀÇ ÇÇ¿¬»êÀÚ´Â Á¤¼öÇü (integral) À̾î¾ß ÇÕ´Ï´Ù. °¢ ÇÇ¿¬»êÀÚ¿¡´Â ÀϹÝÀû »ê¼úº¯È¯ (usual arithmetic conversion) ÀÌ ¼öÇàµÇ¸ç, ±×·Î ÀÎÇØ °á°úÀÇ µ¥ÀÌÅÍÇüÀÌ ¿¹ÃøµË´Ï´Ù.
  ÀÌÇ׿¬»êÀÚ * ´Â °ö¼ÀÀ» ÀǹÌÇÕ´Ï´Ù.
  ÀÌÇ׿¬»êÀÚ / ´Â ù¹øÂ° ÇÇ¿¬»êÀÚ°¡ µÎ¹øÂ° ÇÇ¿¬»êÀÚ·Î ³ª´©¾îÁ³À» ¶§ÀÇ ¸òÀ», % ¿¬»êÀÚ´Â ³ª¸ÓÁö¸¦ ±¸ÇÕ´Ï´Ù; µÎ¹øÂ° ÇÇ¿¬»êÀÚ°¡ 0 ÀÎ °æ¿ì (0 À¸·Î ³ª´©´Â °æ¿ì), °á°ú´Â Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined). µÎ¹øÂ° ÇÇ¿¬»êÀÚ°¡ 0 ÀÌ ¾Æ´Ï¶ó¸é (a / b) * b + a % b °¡ a ÀÓÀÌ º¸ÀåµË´Ï´Ù. ÇÇ¿¬»êÀÚ°¡ µÑ´Ù À½¼ö°¡ ¾Æ´Ï¶ó¸é, ³ª¸ÓÁöµµ À½¼ö°¡ ¾Æ´Ï¸ç Á¦¼öº¸´Ù ÀÛ½À´Ï´Ù; ÇÇ¿¬»çÀÚÁß Çϳª¶óµµ À½¼ö°¡ ÀÖ´Ù¸é, ³ª¸ÓÁöÀÇ Àý´ë°ªÀÌ Á¦¼öÀÇ Àý´ë°ªº¸´Ù ÀÛ´Ù´Â »ç½Ç¸¸ÀÌ º¸ÀåµË´Ï´Ù.

¢¹ A7.7 µ¡¼À¿¬»êÀÚ (Additive Operator)
  µ¡¼À¿¬»êÀÚ +, - ´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù. ¸¸¾à ÇÇ¿¬»êÀÚ°¡ »ê¼úÇüÀ̶ó¸é ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù. »ê¼úÇü¿Ü¿¡µµ °¢ ¿¬»êÀÚ¸¶´Ù ºÎ°¡ÀûÀÎ µ¥ÀÌÅÍÇü °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.

¢º ¿ªÀÚ ÁÖ
  'ºÎ°¡ÀûÀÎ µ¥ÀÌÅÍÇü °¡´É¼º' À̶õ µ¡¼À¿¬»êÀÚ¿Í »¬¼À¿¬»êÀÚ¿¡ »ê¼úÇü¿Ü¿¡ Æ÷ÀÎÅÍÇüÀ» ÇÇ¿¬»êÀÚ·Î µÑ ¼ö ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù.

additive-expression:
        multiplicative-expression
        additive-expression + multiplicative-expression
        additive-expression - multiplicative-expression

  + ¿¬»êÀÚÀÇ °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ÇÕÀÔ´Ï´Ù. ¹è¿­ÀÇ ¾î¶°ÇÑ ´ë»óü¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍ¿Í Á¤¼ö°ª (integral) Àº ´õÇØÁú ¼ö ÀÖ½À´Ï´Ù. Á¤¼ö°ª (integral) Àº Æ÷ÀÎÅͰ¡ °¡¸£Å°´Â ´ë»óüÀÇ Å©±â¸¦ °öÇØ¼­ ¸Þ¸ð¸®»óÀÇ ÁÖ¼Ò (address offset) ·Î º¯È¯µË´Ï´Ù. ¿¬»êÀÇ °á°úÀÎ ÇÕÀº ¿ø·¡ÀÇ ´ë»óü·ÎºÎÅÍ Àû´çÇÑ »ó´ë¹øÁö (offset) ¸¸Å­ ¶³¾îÁ®ÀÖ´Â, °°Àº ¹è¿­³»ÀÇ ´Ù¸¥ ´ë»óü¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍÀÔ´Ï´Ù. µû¶ó¼­ Æ÷ÀÎÅÍ p °¡ ¾î¶² ¹è¿­³»ÀÇ ´ë»óü¸¦ °¡¸£Å°°í ÀÖ´Ù¸é, p+1 Àº ±× ´ÙÀ½ ¿ä¼Ò¸¦ °¡¸£Å°´Â °ÍÀÔ´Ï´Ù. ¹è¿­ÀÇ ÇÑÂÊ ³¡ ¹Ù·Î ´ÙÀ½ À§Ä¡ (first location beyond the high end) ¸¦ Á¦¿ÜÇϰí, ¹è¿­ÀÇ ÇѰ踦 ³Ñ¾î¼­¼­ °¡¸£Å³ °æ¿ìÀÇ °á°ú´Â Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined).

  ¹è¿­ÀÇ ³¡À» ³Ñ¾î¼­´Â Æ÷ÀÎÅÍ¿¡ ´ëÇÑ ±ÝÁöÁ¶Ç×Àº »õ·Î¿î °ÍÀÔ´Ï´Ù. ÀÌ´Â ¹è¿­ÀÇ ¿ä¼Òµé¿¡¼­¸¸ ·çÇÁ¸¦ µµ´Â ÀϹÝÀûÀÎ °ü·Ê¸¦ Á¤ÅëÀ¸·Î ¹Þ¾ÆµéÀÎ °ÍÀÔ´Ï´Ù.

¢º ¿ªÀÚ ÁÖ
  ¹è¿­ÀÇ ÇѰ踦 ³Ñ¾î¼­´Â Æ÷ÀÎÅÍ¿¡ ´ëÇØ¼­´Â ¾î¶°ÇÑ »çÇ×µµ Á¤ÀÇÇØ ÁÖÁö ¾ÊÁö¸¸, ¹è¿­ÀÇ ¹Ù·Î ´ÙÀ½ À§Ä¡¿¡ ´ëÇØ¼­´Â Æ÷ÀÎÅͰ¡ ¹è¿­À» ¹þ¾î³­´Ù°í ÇØµµ ÀÎÁ¤À» ÇØÁÝ´Ï´Ù. ´õ ÀÚ¼¼ÇÑ »çÇ×Àº »¬¼À¿¬»êÀÚ¿Í °ü°è¿¬»êÀÚ¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
  Æ÷ÀÎÅÍ·Î ¹è¿­À» ´Ù·ê ¶§, Àü¿¡´Â ±ÝÁöÁ¶Ç×ÀÌ ¾ø¾îµµ ¹è¿­À» ¹þ¾î³ª´Â Æ÷ÀÎÅÍ ¿¬»êÀº Çʿ䰡 ¾ø¾î ÇàÇØÁöÁö ¾Ê¾Ò½À´Ï´Ù. ÇÏÁö¸¸ ÀÌÁ¦´Â ANSI ¿¡¼­ ±×·¯ÇÑ °ü·Ê¸¦ ¹Þ¾Æµé¿© À̸¦ ¸íÈ®È÷ ±ÝÁöÇÏ°Ô µÇ¾ú½À´Ï´Ù.

  - ¿¬»êÀÚÀÇ °á°ú´Â ÇÇ¿¬»êÀÚÀÇ Â÷ÀÔ´Ï´Ù. Æ÷ÀÎÅÍ¿¡¼­ ¾î¶² Á¤¼ö°ª (integral) µµ »¬ ¼ö ÀÖÀ¸¸ç µ¡¼À¿¬»êÀÚó·³ µ¿ÀÏÇÑ º¯È¯ÀÌ Àû¿ëµË´Ï´Ù.
  °°Àº µ¥ÀÌÅÍÇü Æ÷ÀÎÅÍ´Â ¼­·Î »¬ ¼ö ÀÖÀ¸¸ç, °á°ú´Â µÎ ´ë»óü »çÀÌÀÇ °Å¸® (º¯À§, displacement) ¸¦ ³ªÅ¸³»´Â ºÎÈ£ÀÖ´Â Á¤¼ö°ª (integral) ÀÔ´Ï´Ù; ÀÎÁ¢ÇØ ÀÖ´Â ´ë»óü¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍÀÇ Â÷´Â 1 ÀÔ´Ï´Ù. °á°úÀÇ ±¸Ã¼ÀûÀÎ µ¥ÀÌÅÍÇüÀº µû·Î Á¤ÀǵǾî ÀÖÁö ¾ÊÁö¸¸ (implementation-dependent), Ç¥ÁØ Çì´õÆÄÀÏ <stddef.h> ¿¡ ptrdiff_t ·Î Á¤ÀǵǾî ÀÖ½À´Ï´Ù. °°Àº ¹è¿­³»ÀÇ ´ë»óü¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍÀÇ Â÷°¡ ¾Æ´Ï¶ó¸é ±× °á°ú°ªÀº Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined); ÇÏÁö¸¸ ¹è¿­ÀÇ ¸¶Áö¸· ¿ä¼Ò¸¦ p ¶ó´Â Æ÷ÀÎÅͰ¡ °¡¸£Å°°í ÀÖ´Ù¸é, (p + 1) - 1 ÀÇ °á°ú´Â 1 ÀÓÀÌ º¸ÀåµË´Ï´Ù.

¢¹ A7.8 ½¬ÇÁÆ® ¿¬»êÀÚ (Shift Operator)
  ½¬ÇÁÆ® ¿¬»êÀÚ << ¿Í >> ´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â Á¤¼öÇü (integral) À̾î¾ß Çϰí Á¤¼öÁø±ÞÀÌ ¼öÇàµË´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº Áø±ÞµÈ ¿ÞÂÊ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. ¸¸¾à ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ À½¼öÀ̰ųª ¿ÞÂÊ ÇÇ¿¬»êÀÚ ºñÆ®¼ö ÀÌ»óÀÇ Å©±âÀÏ °æ¿ì¿¡ °á°ú´Â Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined).

shift-expression:
        additive-expression
        shift-expression << additive-expression
        shift-expression >> additive-expression

  E1 << E2 ÀÇ °ªÀº E2 ºñÆ®¼ö¸¸Å­ ÁÂÃø ½¬ÇÁÆ®µÈ (ºñÆ®ÆÐÅÏÀ¸·Î ÇØ¼®µÈ) E1 ÀÔ´Ï´Ù; ¿À¹öÇ÷ο츦 ¹«½ÃÇÑ´Ù¸é, ÀÌ °ªÀº 2E2 ¸¦ °öÇÑ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. E1 >> E2 ÀÇ °ªÀº E2 ºñÆ®¼ö¸¸Å­ ¿ìÃø ½¬ÇÁÆ®µÈ E1 ÀÔ´Ï´Ù. E1 ÀÌ ºÎÈ£¾ø´Â ÇüÀ̰ųª ¾ç¼ö°ªÀ» °®°í ÀÖ´Ù¸é °á°ú´Â 2E2 ·Î E1 À» ³ª´« °Í°ú µ¿ÀÏÇÕ´Ï´Ù; E1 ÀÌ À½¼öÀÎ °æ¿ì¿¡´Â ÄÄÆÄÀÏ·¯¿¡ µû¶ó °á°ú°¡ ´Þ¶óÁý´Ï´Ù (implementation-defined).

¢¹ A7.9 °ü°è¿¬»êÀÚ (Relational Operator)
  °ü°è¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ »ç½ÇÀº º°·Î À¯¿ëÇÏÁö ¾Ê½À´Ï´Ù; a < b < c ´Â (a < b) < c ·Î ¹­À̰í, (a < b) ´Â 0 ¾Æ´Ï¸é 1 ·Î Æò°¡µÇ¾î ¹ö¸³´Ï´Ù.

relational-expression:
        shift-expression
        relational-expression < shift-expression
        relational-expression > shift-expression
        relational-expression <= shift-expression
        relational-expression >= shift-expression

¿¬»êÀÚ < (¹Ì¸¸), > (Ãʰú), <= (ÀÌÇÏ), >= (ÀÌ»ó) ´Â ¼­¼úµÈ °ü°è½ÄÀÌ °ÅÁþÀ̸é 0 À», ÂüÀ̸é 1 À» »ý¼ºÇÕ´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº int ÇüÀÔ´Ï´Ù. ÀϹÝÀû »ê¼úº¯È¯ÀÌ »ê¼úÇü ÇÇ¿¬»êÀÚ¿¡ ¼öÇàµË´Ï´Ù. (ÇüÇÑÁ¤¾î¸¦ ¹«½ÃÇϰí) µ¿ÀÏÇÑ µ¥ÀÌÅÍÇüÀ» °¡¸£Å°´Â Æ÷ÀÎÅÍ´Â ºñ±³µÉ ¼ö ÀÖ½À´Ï´Ù; °á°ú´Â Æ÷ÀÎÅͰ¡ °¡¸£Å°´Â ´ë»óüÀÇ ¸Þ¸ð¸®»óÀÇ »ó´ëÀûÀÎ À§Ä¡¿¡ ´Þ·ÁÀÖ½À´Ï´Ù. Æ÷ÀÎÅÍ ºñ±³´Â ¿ÀÁ÷ µ¿ÀÏÇÑ ´ë»óüÀÇ ÀϺκп¡ ´ëÇØ¼­¸¸ Á¤ÀǵǾî ÀÖ½À´Ï´Ù: ¸¸¾à µÎ Æ÷ÀÎÅͰ¡ µ¿ÀÏÇÑ ´ë»óü¸¦ °¡¸£Å²´Ù¸é °á°ú´Â °°´Ù°í (equal) ³ª¿É´Ï´Ù; ¸¸¾à Æ÷ÀÎÅͰ¡ µ¿ÀÏÇÑ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀ» °¡¸£Å²´Ù¸é, ±¸Á¶Ã¼¿¡¼­ ÈÄ¿¡ ¼±¾ðµÇ´Â ´ë»óüÀÇ Æ÷ÀÎÅͰ¡ ´õ Å©´Ù°í (higher) ºñ±³µË´Ï´Ù; ¸¸¾à Æ÷ÀÎÅͰ¡ µ¿ÀÏÇÑ ¹è¿­À» °¡¸£Å°°í ÀÖ´Ù¸é Æ÷ÀÎÅÍ ºñ±³ÀÇ °á°ú´Â °ð ÷ÀÚ ºñ±³¿Í °°½À´Ï´Ù. ¸¸¾à Æ÷ÀÎÅÍ p °¡ ¹è¿­ÀÇ ¸¶Áö¸· ¿ä¼Ò¸¦ °¡¸£Å°°í ÀÖ´Ù¸é p+1 ÀÌ ºñ·Ï ¹è¿­ÀÇ ¹ÛÀ̶ó ÇØµµ p º¸´Ù Å©°Ô Æò°¡µË´Ï´Ù. ±×¿ÜÀÇ °æ¿ì´Â Æ÷ÀÎÅÍ ºñ±³¿¡ ´ëÇØ¼­ Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined).

  ÀÌ·¯ÇÑ ±ÔÄ¢µéÀº ±¸Á¶Ã¼³ª °ø¿ëüÀÇ ¼­·Î ´Ù¸¥ ¸â¹öµé¿¡ ´ëÇÑ Æ÷ÀÎÅÍ ºñ±³¸¦ Çã°¡ÇÔÀ¸·Î½á, ÃÊÆÇ¿¡¼­ÀÇ Á¦¾àÀ» ´Ù¼Ò ¿ÏÈ­ÇÏ¿´½À´Ï´Ù. ANSI ´Â ¶ÇÇÑ ¹è¿­ÀÇ ³¡À» ¹þ¾î³ª´Â ºñ±³¸¦ °øÀÎÇÏ¿´½À´Ï´Ù.

¢¹ A7.10 »óµî¿¬»êÀÚ (Equality Operator)

equality-expression:
        relational-expression
        equality-expression == relational-expression
        equality-expression != relational-expression

== (°°À½) °ú != (°°Áö ¾ÊÀ½) ¿¬»êÀÚ´Â ³·Àº ¿¬»ê¼øÀ§¸¦ Á¦¿ÜÇÏ¸é °ü°è¿¬»êÀÚ¿Í À¯»çÇÕ´Ï´Ù. (µû¶ó¼­ a < b ¿Í c < d °¡ °°Àº Áø¸®°ªÀ» °®À» ¶§¿¡¸¸ a < b == c < d ´Â 1 ÀÌ µË´Ï´Ù)
  »óµî¿¬»êÀÚ´Â °ü°è¿¬»êÀÚ¿Í µ¿ÀÏÇÑ ±ÔÄ¢À» µû¸£Áö¸¸, Ãß°¡ÀûÀÎ °¡´É¼ºµµ Çã°¡µÇ¾î ÀÖ½À´Ï´Ù: Æ÷ÀÎÅÍ´Â void Çü Æ÷ÀÎÅÍ È¤Àº 0 °ªÀ» °®´Â »ó¼ö¼ö½Ä°ú ºñ±³µÉ ¼ö ÀÖ½À´Ï´Ù. (A6.6 Âü°í)

¢¹ A7.11 ºñÆ® AND ¿¬»êÀÚ (Bitwise AND Operator)

AND-expression:
        equality-expression
        AND-expression & equality-expression

ÇÇ¿¬»êÀÚ¿¡ ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù; °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ºñÆ® AND °ªÀÔ´Ï´Ù. Á¤¼ö ÇÇ¿¬»êÀÚ (integral) ¿¡¸¸ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¢¹ A7.12 ºñÆ® XOR ¿¬»êÀÚ (Bitwise Exclusive OR Operator)

exclusive-OR-expression:
        AND-expression
        exclusive-OR-expression ^ AND-expression

ÇÇ¿¬»êÀÚ¿¡ ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù; °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ºñÆ® XOR °ªÀÔ´Ï´Ù. Á¤¼ö ÇÇ¿¬»êÀÚ (integral) ¿¡¸¸ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¢¹ A7.13 ºñÆ® OR ¿¬»êÀÚ (Bitwise Inclusive OR Operator)

inclusive-OR-expression:
        exclusive-OR-expression
        inclusive-OR-expression | exclusive-OR-expression

ÇÇ¿¬»êÀÚ¿¡ ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù; °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ºñÆ® OR °ªÀÔ´Ï´Ù. Á¤¼ö ÇÇ¿¬»êÀÚ (integral) ¿¡¸¸ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¢¹ A7.14 ³í¸® AND ¿¬»êÀÚ (Logical AND Operator)

logical-AND-expression:
        inclusive-OR-expression
        logical-AND-expression && inclusive-OR-expression

&& ¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù. µÎ ÇÇ¿¬»êÀÚ°¡ ¸ðµÎ 0 °ú ´Ù¸£¸é 1 À», ±×·¸Áö ¾ÊÀ¸¸é 0 À» ¹ÝȯÇÕ´Ï´Ù. & ¿Í´Â ´Þ¸®, && ´Â ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡ ¸ÕÀú Æò°¡µÈ´Ù´Â °ÍÀÌ º¸ÀåµË´Ï´Ù: ¸ðµç ºÎÀÛ¿ë (side effect) À» Æ÷ÇÔÇØ ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡ ¸ÕÀú Æò°¡µË´Ï´Ù; ±× °ªÀÌ 0 À̶ó¸é, ¼ö½ÄÀÇ °ªÀº 0 ÀÌ µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ Æò°¡µÇ°í, ±× °ªÀÌ 0 À̶ó¸é ¼ö½ÄÀÇ °ªÀº 0 ÀÌ, 0 ÀÌ ¾Æ´Ï¶ó¸é ¼ö½ÄÀÇ °ªÀº 1 ÀÌ µË´Ï´Ù.
  ÇÇ¿¬»êÀÚ´Â °°Àº µ¥ÀÌÅÍÇüÀ» °®À» ÇÊ¿ä´Â ¾øÁö¸¸, »ê¼úÇüÀ̳ª Æ÷ÀÎÅÍ¿©¾ß ÇÕ´Ï´Ù. ¿¬»ê °á°ú´Â int ÇüÀÔ´Ï´Ù.

¢¹ A7.15 ³í¸® OR ¿¬»êÀÚ (Logical OR Operator)

logical-OR-expression:
        logical-AND-expression
        logical-OR-expression || logical-AND-expression

|| ¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚÁß Çϳª°¡ 0 °ú ´Ù¸£¸é 1 À», ±×·¸Áö ¾ÊÀ¸¸é 0 À» ¹ÝȯÇÕ´Ï´Ù. | ¿Í´Â ´Þ¸®, || ´Â ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡ ¸ÕÀú Æò°¡µÈ´Ù´Â °ÍÀÌ º¸ÀåµË´Ï´Ù: ¸ðµç ºÎÀÛ¿ë (side effect) À» Æ÷ÇÔÇØ ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡ ¸ÕÀú Æò°¡µË´Ï´Ù; ±× °ªÀÌ 0 °ú ´Ù¸£¸é, ¼ö½ÄÀÇ °ªÀº 1 ÀÌ µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ Æò°¡µÇ°í, ±× °ªÀÌ 0 °ú ´Ù¸£¸é ¼ö½ÄÀÇ °ªÀº 1 ÀÌ, 0 ÀÌ¸é ¼ö½ÄÀÇ °ªÀº 0 ÀÌ µË´Ï´Ù.
  ÇÇ¿¬»êÀÚ´Â °°Àº µ¥ÀÌÅÍÇüÀ» °®À» ÇÊ¿ä´Â ¾øÁö¸¸, »ê¼úÇüÀ̳ª Æ÷ÀÎÅÍ¿©¾ß ÇÕ´Ï´Ù. ¿¬»ê °á°ú´Â int ÇüÀÔ´Ï´Ù.

¢¹ A7.16 Á¶°Ç¿¬»êÀÚ (Conditional Operator)

conditional-expression:
        logical-OR-expression
        logical-OR-expression ? expression : conditional-expression

  ¸ðµç ºÎÀÛ¿ë (side effect) À» Æ÷ÇÔÇØ ù¹øÂ° ÇÇ¿¬»êÀÚ°¡ Æò°¡µË´Ï´Ù; ±× °ªÀÌ 0 °ú ´Ù¸£¸é °á°ú´Â µÎ¹øÂ° ¼ö½ÄÀÇ °ªÀÌ µË´Ï´Ù. µÎ¹øÂ°¿Í ¼¼¹øÂ° ÇÇ¿¬»êÀÚÁß Çϳª¸¸ÀÌ Æò°¡µË´Ï´Ù. ¸¸¾à µÎ¹øÂ°¿Í ¼¼¹øÂ° ÇÇ¿¬»êÀÚ°¡ »ê¼úÇüÀ̸é, µÎ ÇÇ¿¬»êÀÚ¸¦ °øÅëµÈ µ¥ÀÌÅÍÇüÀ¸·Î ¸¸µé±â À§ÇØ ÀϹÝÀû »ê¼úº¯È¯ÀÌ Àû¿ëµË´Ï´Ù. ±×¸®°í ±×°ÍÀÌ °ð °á°úÀÇ µ¥ÀÌÅÍÇüÀÌ µË´Ï´Ù. ¸¸¾à µÎ ÇÇ¿¬»êÀÚ°¡ void ÇüÀ̰ųª, °°Àº ±¸Á¶Ã¼³ª °ø¿ëüÀ̰ųª, °°Àº ÇüÀÇ Æ÷ÀÎÅͶó¸é °á°ú´Â µÎ ÇÇ¿¬»êÀÚÀÇ °øÅëµÈ µ¥ÀÌÅÍÇüÀÌ µË´Ï´Ù. ¸¸¾à ÇÑ ÇÇ¿¬»êÀÚ´Â Æ÷ÀÎÅÍ, ´Ù¸¥ ÇÇ¿¬»êÀÚ´Â »ó¼ö 0 À̶ó¸é, 0 Àº Æ÷ÀÎÅÍ·Î º¯È¯µÇ°í °á°úÇü ¿ª½Ã Æ÷ÀÎÅÍÀÔ´Ï´Ù. Çϳª´Â void Çü Æ÷ÀÎÅͰí, ´Ù¸¥ Çϳª´Â ÀÏ¹Ý Æ÷ÀÎÅͶó¸é ÀÏ¹Ý Æ÷ÀÎÅÍ´Â void Çü Æ÷ÀÎÅÍ·Î º¯È¯µÇ°í °á°úÇü ¿ª½Ã void Çü Æ÷ÀÎÅÍÀÔ´Ï´Ù.
  Æ÷ÀÎÅÍÀÇ µ¥ÀÌÅÍÇü ºñ±³¿¡¼­, Æ÷ÀÎÅͰ¡ °¡¸£Å°´Â µ¥ÀÌÅÍÇüÀÇ ¾î¶°ÇÑ ÇüÇÑÁ¤¾î (type qualifier, A8.2) µµ ¹«½ÃµÇ¾î ¹ö¸³´Ï´Ù. ÇÏÁö¸¸ °á°úÀÇ µ¥ÀÌÅÍÇüÀº Á¶°Ç¿¬»êÀÚÀÇ µÎ ÇÇ¿¬»êÀڷκÎÅÍ ÇÑÁ¤¾î¸¦ »ó¼Ó¹Þ½À´Ï´Ù.

¢º ¿ªÀÚ ÁÖ
  µÎ Æ÷ÀÎÅÍÀÇ µ¥ÀÌÅÍÇüÀ» ºñ±³ÇÒ ¶§ ÇüÇÑÁ¤¾î´Â µ¥ÀÌÅÍÇü ºñ±³¿¡ ¾Æ¹«·± ¿µÇâÀ» ÁÖÁö ¸øÇÕ´Ï´Ù. ´Ù¸¸ µ¥ÀÌÅÍÇü ºñ±³¿¡¼­´Â ¿µÇâÀÌ ¾øÀ¸³ª, °á°úÀÇ µ¥ÀÌÅÍÇüÀÌ °áÁ¤µÉ ¶§´Â µÎ ÇÇ¿¬»êÀÚÀÇ ÇÑÁ¤¾î¸¦ ¹°·Á¹Þ°Ô µÈ´Ù´Â ÀǹÌÀÔ´Ï´Ù.

¢¹ A7.17 ´ëÀÔ¼ö½Ä (Assignment Expression)
  C¿¡´Â ¿©·¯ Á¾·ùÀÇ ´ëÀÔ¿¬»êÀÚ (assignment operator) °¡ ÀÖ½À´Ï´Ù; ¸ðµç ´ëÀÔ¿¬»êÀÚ´Â ¿À¸¥ÂÊ¿¡¼­ ¿ÞÂÊÀ¸·Î ¹­ÀÔ´Ï´Ù.

assignment-expression:
        conditional-expression
        unary-expression assignment-operator assignment-expression

assignment operator:  one of
        =   *=   /=   %=   +=   -=   <<=   >>=   &=   ^=   |=

¸ðµç ´ëÀÔ¿¬»êÀÚ´Â ¿ÞÂÊ ÇÇ¿¬»êÀÚ·Î Áº¯°ªÀ» ÇÊ¿ä·Î Çϸç, ±× Áº¯°ªÀº ¹Ýµå½Ã ¼öÁ¤ÀÌ °¡´ÉÇØ¾ß ÇÕ´Ï´Ù: ¹è¿­À̾´Â ¾ÈµÇ¸ç, ºÒ¿ÏÀüÇÑ Çü (incomplete type) À̳ª ÇÔ¼ö¿©µµ ¾ÈµË´Ï´Ù. ¶ÇÇÑ Áº¯°ªÀÇ µ¥ÀÌÅÍÇüÀÌ const ·Î ÇÑÁ¤µÇ¾î À־ ¾ÈµË´Ï´Ù; Áº¯°ªÀÌ ±¸Á¶Ã¼³ª °ø¿ëüÀÎ °æ¿ì, ±¸Á¶Ã¼³ª °ø¿ëüÁß ¾î¶°ÇÑ ¸â¹öµµ, Àç±ÍÀûÀ¸·Î µÇ¾î ÀÖ´Â °æ¿ì, ¾î¶°ÇÑ ºÎºÐ¸â¹ö (submember) µµ const ·Î ÇÑÁ¤µÇ¾î¼­´Â ¾ÈµË´Ï´Ù. ´ëÀÔ¼ö½ÄÀÇ µ¥ÀÌÅÍÇüÀº ¿ÞÂÊ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀ̸ç, °ªÀº ´ëÀÔÀÌ ÀϾ ÈÄ¿¡ ¿ÞÂÊ ÇÇ¿¬»êÀÚ¿¡ ´ëÀÔµÈ °ªÀÔ´Ï´Ù.
  = ¿Í °°Àº °£´ÜÇÑ ´ëÀÔ¿¡¼­, ¼ö½ÄÀÇ °ªÀº Áº¯°ª¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ´ë»óüÀÇ °ªÀ¸·Î ġȯµË´Ï´Ù. ´ÙÀ½ »ç½ÇÁß Çϳª¿¡ ¹Ýµå½Ã ÇØ´çµÇ¾î¾ß ÇÕ´Ï´Ù: µÎ ÇÇ¿¬»êÀÚ°¡ ¸ðµÎ »ê¼úÇüÀ̶ó¸é, ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ ´ëÀÔ¿¡ ÀÇÇØ ¿ÞÂÊ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀ¸·Î º¯È¯µË´Ï´Ù; ȤÀº µÎ ÇÇ¿¬»êÀÚ°¡ ¸ðµÎ °°Àº ÇüÀÇ ±¸Á¶Ã¼³ª °ø¿ëüÀÔ´Ï´Ù; ȤÀº ÇÑ ÇÇ¿¬»êÀÚ´Â Æ÷ÀÎÅÍÀÌ°í ´Ù¸¥ ÇÇ¿¬»êÀÚ´Â void Çü Æ÷ÀÎÅÍÀÔ´Ï´Ù; ȤÀº ¿ÞÂÊ ÇÇ¿¬»êÀÚ´Â Æ÷ÀÎÅÍÀÌ°í ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ´Â 0 °ªÀ» °®´Â »ó¼ö¼ö½ÄÀÔ´Ï´Ù; ȤÀº ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ¿¡ ÀÖ´Â const ³ª volatile ¸¦ Á¦¿ÜÇÏ¸é °°Àº µ¥ÀÌÅÍÇüÀÇ ´ë»óü³ª ÇÔ¼ö¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍ¿©¾ß ÇÕ´Ï´Ù.
  E1 op= E2 ÇüÅÂÀÇ ¼ö½ÄÀº E1 ÀÌ Çѹø¸¸ Æò°¡µÈ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé E1 = E1 op E2 ¿Í µ¿ÀÏÇÕ´Ï´Ù.

¢¹ A7.18 ½°Ç¥¿¬»êÀÚ (Comma Operator)

expression:
        assignment-expression
        expression, assignment-expression

  ½°Ç¥¿¡ ÀÇÇØ ºÐ¸®µÈ ÇѽÖÀÇ ¼ö½ÄÀº ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î Æò°¡µÇ°í, ¼ö½ÄÀÇ µ¥ÀÌÅÍÇü°ú °ªÀº ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ¿Í °°½À´Ï´Ù. ¿ÞÂÊ ÇÇ¿¬»êÀÚ¸¦ Æò°¡Çϸ鼭 ¹ß»ýÇÏ´Â ¸ðµç ºÎÀÛ¿ë (side effect) Àº ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚÀÇ Æò°¡¸¦ ½ÃÀÛÇϱâ Àü¿¡ ¸ðµÎ ¿Ï·áµË´Ï´Ù. ÇÔ¼ö ÀÎÀÚ ¸®½ºÆ®³ª ÃʱâÄ¡ (initializer) ¿Í °°ÀÌ ½°Ç¥°¡ Ưº°ÇÑ Àǹ̷ΠÁÖ¾îÁö´Â ¹®¸Æ¿¡¼­, ÇÊ¿äÇÑ ¹®¹ýÀû ´ÜÀ§ (syntactic unit) ´Â ´ëÀÔ¼ö½ÄÀ̰í, µû¶ó¼­ ½°Ç¥¿¬»êÀÚ´Â °ýÈ£¾È¿¡¼­¸¸ ³ª¿É´Ï´Ù; ¿¹¸¦ µé¾î,

f(a, (t=3, t+2), c)

´Â 3°³ÀÇ ÀÎÀÚ¸¦ °¡Áö°í ÀÖÀ¸¸ç, µÎ¹øÂ° ÀÎÀÚÀÇ °ªÀº 5°¡ µË´Ï´Ù.

¢¹ A7.19 »ó¼ö¼ö½Ä (Constant Expression)
  ¹®¹ýÀûÀ¸·Î, »ó¼ö¼ö½ÄÀº ¿¬»êÀÚÀÇ ºÎºÐÁýÇÕ¿¡ Á¦ÇÑµÈ ¼ö½ÄÀÔ´Ï´Ù.

constant-expression:
        conditional-expression

»ó¼ö¼ö½ÄÀº case ¹®ÀÇ µÚ, ¹è¿­ÀÇ Å©±â (bound) ¼³Á¤, ºñÆ®ÇʵåÀÇ ±æÀÌ, ¿­°Å»ó¼öÀÇ °ª, ÃʱâÄ¡, ¸íÈ®ÇÑ Àü󸮱⠼ö½Ä°ú °°Àº ¿©·¯ ¹®¸Æ¿¡¼­ ÇÊ¿äÇÕ´Ï´Ù.
  »ó¼ö¼ö½ÄÀº sizeof ÀÇ ÇÇ¿¬»êÀÚ·Î ¾²ÀÌ´Â °æ¿ì¸¦ Á¦¿ÜÇϰí´Â ´ëÀÔ¹®, °£Á¢ÁöÁ¤ (indirection), Áõ°¨¿¬»êÀÚ, ÇÔ¼öÈ£Ãâ, ½°Ç¥¿¬»êÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. ¸¸¾à »ó¼ö¼ö½ÄÀÌ Á¤¼ö°ª (integral) ÀÏ Çʿ䰡 ÀÖ´Ù¸é, ±×°ÍÀÇ ÇÇ¿¬»êÀÚ´Â ¹Ýµå½Ã Á¤¼ö (integer), ¿­°Å, ¹®ÀÚ, ºÎµ¿»ó¼ö·Î ±¸¼ºµÇ¾î¾ß¸¸ Çϸç, Á¤¼öÇü (integral) À¸·ÎÀÇ Ä³½ºÆ®°¡ ¸í½ÃµÇ¾î¼­ ºÎµ¿»ó¼ö°¡ Á¤¼ö (integer) ·Î º¯È¯µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. »ó¼ö¼ö½Ä¿¡´Â ÇʼöÀûÀ¸·Î ¹è¿­, °£Á¢ÁöÁ¤, ÁÖ¼Ò¿¬»ê, ±×¸®°í ±¸Á¶Ã¼ ¸â¹ö ¿¬»êÀº ¹èÁ¦µË´Ï´Ù. (´Ù¸¸, sizeof ÀÇ ÇÇ¿¬»êÀÚ·Î ¾²ÀÎ´Ù¸é ¸ðµÎ °¡´ÉÇÕ´Ï´Ù)
  ÃʱâÄ¡ (initalizer) ·Î ¾²ÀÌ´Â »ó¼ö¼ö½Ä¿¡´Â ´õ ¸¹Àº °ÍµéÀÌ Çã¿ëµË´Ï´Ù. ÇÇ¿¬»êÀÚ´Â ¾î¶°ÇÑ ÇüÀÇ »ó¼ö¿©µµ °¡´ÉÇϰí, ´ÜÇ× & ¿¬»êÀÚ°¡ ¿ÜºÎ (external) ȤÀº Á¤Àû (static) ´ë»óü¿¡ »ç¿ëµÇ¾îµµ ÁÁÀ¸¸ç, ÷ÀÚ°¡ ÀÖ´Â (subscripted) ¿ÜºÎ ȤÀº Á¤Àû ¹è¿­ÀÌ µé¾îÀ־ ±¦Âú½À´Ï´Ù. ¶ÇÇÑ ´ÜÇ× & ¿¬»êÀڴ ÷ÀÚ°¡ ¾ø´Â ¹è¿­À̳ª ÇÔ¼ö°¡ ³ª¿ÈÀ¸·Î½á ¾Ï½ÃÀûÀ¸·Î Àû¿ëµÉ ¼öµµ ÀÖ½À´Ï´Ù. ÃʱâÄ¡´Â ¹Ýµå½Ã ÀÌ¹Ì ¼±¾ðµÈ ¿ÜºÎ, Á¤Àû ´ë»óüÀÇ ÁÖ¼Ò¿¡ »ó¼ö°¡ °¡°¨µÈ °ªÀ̳ª »ó¼ö°ªÀ¸·Î Æò°¡µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù.
  #if µÚ¿¡ ³ª¿À´Â Á¤¼ö »ó¼ö¼ö½Ä (integral) ¿¡´Â ´õ ¸¹Àº Á¦¾àÀÌ µû¸¨´Ï´Ù; sizeof ¼ö½Ä, ¿­°Å»ó¼ö, ij½ºÆ®°¡ Çã°¡µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù. A12.5 Âü°í.

¢º ¿ªÀÚ ÁÖ
  sizeof ¼ö½ÄÀº ÄÄÆÄÀÏ Àü¿¡ ÀÌ¹Ì »ó¼ö¼ö½ÄÀ¸·Î Æò°¡µÇ¹Ç·Î, »ó¼ö¼ö½Ä¿¡´Â »ç¿ëÇÒ ¼ö ¾ø´Â ÇÇ¿¬»êÀÚ¶ó ÇØµµ sizeof ¸¦ °ÅÄ¡¸é ÃæºÐÈ÷ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.


ÀÌÀü [¡ã ¸ÇÀ§·Î]
[¢Ê ¸ñÂ÷·Î]
´ÙÀ½