5. ´ëÀÔ ¿¬»êÀÚ

´ëÀÔ ¿¬»êÀÚ(Assignment operator)´Â = ÀÇ ¿À¸¥ÂÊ¿¡ ÀÖ´Â °ªÀ̳ª ¿¬»ê °á°ú¸¦ ¿ÞÂÊÀÇ º¯¼ö¿¡ ±â¾ï½ÃŰ´Â ¿¬»êÀڷμ­ ÇÒ´ç ¿¬»êÀÚ ¶Ç´Â ġȯ ¿¬»êÀÚ¶ó°íµµ ÇÕ´Ï´Ù. ÀÏ¹Ý ´ëÀÔ ¿¬»êÀÚ¿Í È¥ÇÕµÈ ÇüÅÂÀÇ ´ëÀÔ ¿¬»êÀÚ°¡ Àִµ¥ È¥ÇÕµÈ ÇüÅÂÀÇ ´ëÀÔ ¿¬»êÀÚ´Â ¼ö½ÄÀ» °£°áÇÏ°Ô Ç¥ÇöÇÒ ¼ö ÀÖÁö¸¸ ¿¬»êÀÇ ¿ì¼± ¼øÀ§¿¡ À¯ÀÇÇØ¾ß ÇÕ´Ï´Ù.

 

¿¬»êÀÚ

±â ´É

»ç¿ë ¿¹

=

¿ìº¯ÀÇ °á°ú¸¦ ÁÂÃø º¯¼ö¿¡ ±â¾ï

a=b+c

+=

a=a+b

a+=b

-=

a=a-b

a-=b

*=

a=a*b

a*=b

/=

a=a/b

a/=b

%=

a=a%b

a%=b

&=

a=a&b

a&=b

|=

a=a|b

a|=b

^=

a=a^b

a^=b

<<=

a=a<<b

a<<=b

>>=

a=a>>b

a>>=b

 

 ¡¼¼Ò½º ÇÁ·Î±×·¥¡½

//File Name : ex052_operator12.c

#include <stdio.h>

int main(void){

  int a=10, b=5, c=3;

  a-=b;           ------------- ¨ç

  b*=a+c;         ------------- ¨è

  c+=b+=a;       ------------- ¨é   

  printf("a=%2d,  b=%2d,  c=%2d\n", a, b, c);

}

 

¡¼½ÇÇà °á°ú¡½

a= 5,  b=45,  c=48

 

À§ ÇÁ·Î±×·¥ ½ÇÇà °á°ú ¨ç ¹®ÀåÀº a=a-b¸¦, ¨è ¹®ÀåÀº ¿¬»êÀÇ ¿ì¼± ¼øÀ§°¡ a+c°¡ ³ôÀ¸¹Ç·Î ¸ÕÀú ½ÇÇàÇϰí b*=(°á°ú)¸¦ ½ÇÇàÇÕ´Ï´Ù. ¨é ¹®ÀåÀº ´ëÀÔ ¿¬»êÀÚÀÇ °áÇÕ ¼øÀ§°¡ ¿ìÃø¿¡¼­ ÁÂÃøÀ̹ǷΠb+=a¸¦ ¸ÕÀú ¿¬»êÇÏ°í ±× °á°ú¸¦ °¡Áö°í c+=(°á°ú)¸¦ ¿¬»êÇÑ´Ù.

 

»ç½Ç ÇÊÀÚ´Â ¨ç°ú °°Àº ¹®ÀåÀº »ç¿ëÇÏÁö¸¸, ¨è¿Í ¨é°°Àº ¹®ÀåÀº º°·Î »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ´Ù¼Ò ÀԷ·®ÀÌ ¸¹´õ¶óµµ ¨è ´ë½Å¿¡ b=b*(a+c); ·Î ÀÛ¼ºÇÕ´Ï´Ù. ±×¸®°í ¨é°ú °°Àº Çü½ÄÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¡¸ÓÀº º°·Î ¾øÀ» °ÍÀÔ´Ï´Ù.