4. Áõ°¨ ¿¬»êÀÚ

 

Áõ°¨ ¿¬»êÀÚ(Increment Decrement operator)´Â C ¾ð¾î¿¡¼­ º¼ ¼ö ÀÖ´Â µ¶Æ¯ÇÑ ¿¬»êÀڷμ­ ´ÜÇ× ¿¬»êÀÚÀÔ´Ï´Ù. ÀüÀ§Çü°ú ÈÄÀ§ÇüÀÌ ÀÖÀ¸¸ç È¥µ¿µÉ ¼ö ÀÖÀ¸¹Ç·Î ÁÖÀÇÇØ¼­ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

 

¿¬»êÀÚ

±â ´É

»ç¿ë ¿¹

++

ÇÇ¿¬»êÀÚÀÇ °ªÀ» 1 Áõ°¡

a++  ¡æ   a = a + 1

--

ÇÇ¿¬»êÀÚÀÇ °ªÀ» 1 °¨¼Ò

a--  ¡æ   a = a 1

 

¿¬»êÀÚ

±â ´É

»ç¿ë ¿¹

++a

a°ªÀ» 1 Áõ°¡ ½ÃŲ ÈÄ¿¡, a¿¡ ÀúÀå, »ç¿ë

++a;

--a

a°ªÀ» 1 °¨¼Ò ½ÃŲ ÈÄ¿¡, a¿¡ ÀúÀå, »ç¿ë

--a;

a++

a¸¦ »ç¿ëÇÑ ÈÄ¿¡, a¸¦ 1Áõ°¡½ÃÄÑ a¿¡ ÀúÀå

a++;

a--

a¸¦ »ç¿ëÇÑ ÈÄ¿¡, a¸¦ 1°¨¼Ò½ÃÄÑ a¿¡ ÀúÀå

a--;

 

¿¹¸¦ µé¾î  a++ ÀÎ °æ¿ì¿¡ a¸¦ »ç¿ëÇÑ ÈÄ¿¡, a¸¦ 1Áõ°¡½ÃÄÑ a¿¡ ÀúÀåÇϹǷÎ

printf("%d", a++); ´Â a¸¦ Ãâ·ÂÇÑ ÈÄ¿¡ a°ªÀ» 1Áõ°¡½ÃÄÑ ÀúÀåÇϰí,

++a  ÀÎ °æ¿ì¿¡´Â a¸¦ 1Áõ°¡½ÃŲ ÈÄ¿¡ a¸¦ »ç¿ëÇϹǷÎ

printf("%d", ++a); ´Â a¸¦ 1Áõ°¡½ÃŲ ÈÄ¿¡ Áõ°¡µÈ °ªÀ» Ãâ·ÂÇÕ´Ï´Ù.

 

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

// File Name : ex052_operator01.c

#include <stdio.h>

int main(void){

  int a=5;

  int b=10;

  printf("++a=%d \n", ++a);

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

  printf("a++=%d \n", a++);

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

 

  printf("--b=%d \n", --b);

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

  printf("b--=%d \n", b--);

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

 

  return 0;

}

 

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

++a=6

a=6

a++=6

a=7

--b=9

b=9

b--=9

b=8

 

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

// File Name : ex053_operator.c

#include <stdio.h>

int main(void){

  int a=10, b=10, re1, re2;

  a++; ++b;

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

  re1 = a++  + 10;

  re2 = ++b  + 10;

  printf("re1=%d re2=%d a=%d b=%d\n", re1, re2, a, b);

}

 

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

a=11 b=11

re1=21 re2=22 a=12 b=12

 

À§ ÇÁ·Î±×·¥¿¡¼­ Áõ°¨ ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¶§ ÇÑ ¹®Àå ´Üµ¶À¸·Î ¾²ÀÏ °æ¿ì¿¡´Â ÀüÀ§Çü°ú ÈÄÀ§ÇüÀÌ °á°ú °ªÀÌ °°Áö¸¸ ´Ù¸¥ ¹®Àå°ú ÇÔ²² ¾²¿´À» °æ¿ì¿¡´Â °á°ú °ªÀÌ ´Þ¶óÁüÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. Áï, ÀüÀ§ÇüÀÎ °æ¿ì¿¡´Â ¿ì¼± º¯¼öÀÇ °ªÀ» 1À» Áõ°¡(¶Ç´Â °¨¼Ò)½ÃŲ ÈÄ¿¡ ¼ö½Ä¿¡ Àû¿ë½Ã۰í, ÈÄÀ§ÇüÀÎ °æ¿ì¿¡´Â ÇöÀç º¯¼öÀÇ °ªÀ» ±×´ë·Î ¼ö½Ä¿¡ Àû¿ë½ÃŰ°í ³­ ´ÙÀ½ º¯¼öÀÇ °ªÀ» 1À» Áõ°¡(¶Ç´Â °¨¼Ò) ½Ãŵ´Ï´Ù.

 

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

// File Name : ex055_operator13.c

#include <stdio.h>

int main(void){

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

  re1 = ++a + ++b + c++;

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

  re2 = --a - b-- + a-- + c--;

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

}

 

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

a=11  b= 6  c= 4  re1=20

a= 9  b= 5  c= 3  re2=18

 

À§ ÇÁ·Î±×·¥¿¡¼­ re1ÀÇ °á°ú´Â 11+6+3(c°ªÀº ÈÄÀ§ ¿¬»êÀÚ)=20ÀÌ µÇ¸ç, ¿¬»ê ÈÄ¿¡ c°ªÀÌ 1ÀÌ Áõ°¡µÇ¾î 4°¡ µË´Ï´Ù. re2´Â 10-6+10+4=18ÀÌ µÇ¸ç, ¿¬»ê ÈÄ¿¡ a, b, c°¡ °¢°¢ 1¾¿ °¨¼ÒÇÕ´Ï´Ù.