본문 바로가기

컴퓨터/C언어

9. C언어 값을 1증가,감소 시키는 증감연산자 (--,++)

본포스팅은 윤성우의 열혈 C프포그래밍을기초로하고있으며

개인의 복습목적의 포스팅입니다

참고하시는건 좋으나 제 포스팅만으로 학습은 불가능합니다





안녕하세요 sdk입니다


반복문이나 다른거 하기전에 

자주쓰이는 연산자인

++ 과 -- 연산자를 소계해드리도록 하겠습니다


이 증감연산자는

단항연산자로 써

변수와 함깨 사용됩니다


-- 은 1을 감소시킵니다

즉 -- 은 피연산자가 되는 변수의 값을 1만 감소시킵니다


++ 은 반대로 피연산자의 값을 딱 1증가시키는 연산자입니다


간단한 예제를 만들어보겟습니다




int main (void)

{

int num1 = 10,num2 = 20;


printf("num1, num2: %d %d\n",num1,num2);

num1--;

num2++;

printf("num1, num2: %d %d\n",num1,num2);

--num1;

++num2;

printf("num1, num2: %d %d\n",num1,num2);



}





간단히 설명해 드리면

변수 num1과 num2를 각각 선언했습니다

그런후 10과 20으로 초기화했죠.

처음값은 출력값과 같이

10과20으로 아직 안건든값입니다


밑으로 내려와서 num1--;과 num2++;이 있습니다

여기서 num1의 값을 감소시키고 num2는 증가시켰습니다


그래서 두번째줄엔 num1과 num2의 값이 1씩 감소하고 증가한겄이죠


그 밑라인은 --num1;이랑 ++num2;가있습니다

둘의차이점은 곧 표로 나타내겠습니다


어쨋든 이것또한 1이 감소하고 증가한다는걸 알수있습니다

그렇습니다 앞서 말한것과같이 -- ,++ 연산은 1을 감소하고 증가하는연산입니다



그런데 --num;과 num2--; 이두가지의 차이점은 무엇일까요


정답은 연산 순서를 나타내는것입니다


표로 나타내도록 하겠습니다




연산자 

 연산자의 기능

 결합방향

 ++num

 값을 1증가후 남은 문장을 진행 (선증가,후연산)

 ←

 num++

 문장을 먼저 진행한후 값을1증가(선연산 후증가)

 

--num

 값을 1감소후 남은 문장을 진행(선증가,후연산)

 

 num--

문장을 먼저 진행한후 값을 1 감소(선연산 후증가)

 

두가지의 차이점은 먼저 연산을 진행한뒤 1을 증가시키느냐

1을 증가시킨뒤 연산을 진행하냐입니다


즉 printf 함수와 같이사용되었을경우

printf ("%d",num++);

이문장에서 출력은 num의 증가값이아닌

원본값이 출력된다는것입니다


간단히 설명하면 printf 함수가 이미 끝난뒤 1이 증가하는 꼴이 된것입니다

선 증가 ,후 연산을 "전위 증가,전위 감소"라고 하고

선 연산,후 증가를 "후위 증가,후위 감소"라고합니다



이쯤에서 포스팅 마치겠습니다 감사합니다