생선이의 잡다한 블로그

C언어 강좌 13 - 값을 1씩 증감 시켜보자! 증감연산자 본문

프로그래밍/C언어 강좌

C언어 강좌 13 - 값을 1씩 증감 시켜보자! 증감연산자

생선스프 2017. 4. 13. 21:00
반응형

안녕하세요 생선스프입니다!

이번에는 증감연산자를 알아보려고 합니다


우선 시작하기 전에 연산자의 종류를 알아보도록 하겠습니다

(연산자의 이름을 누르면 해당 연산자의 강좌로 이동합니다)


산술연산자 - 사칙연산을 진행함

(복합)대입연산자 - 대입을 함

증감연산자 - 1씩 증감시킴

관계연산자 - 값을 비교

조건연산자(삼항연산자) - 조건이 참이면 앞을 실행 거짓이면 뒤를 실행

논리연산자 - 논리연산을 진행


이제 이번 강좌 시작하도록 하겠습니다


우선 증감연산자가 무엇을 하는 연산자인지 알아야겠죠


증감연산자는 값을 1씩 증가시켜주거나 1씩 감소시켜주는 연산자입니다


그렇다면 연산자도 두 개가 있겠네요


 ++

 1씩 증가

 --

 1씩 감소


그리고 a 라는 변수가 있다면 ++a 혹은 a++ 이렇게 사용할 수 있습니다


이를 각각 전위, 후위 라고 합니다


전위는 값을 먼저 증가시키고, 후위는 할 거 먼저 다 하고 값을 증가시킵니다.


아마 아직 이해가 잘 안되실 겁니다


아래의 예제를 보면 이해가 될겁니다


1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
void main()
{
    int a = 0, b = 0;
 
    printf("%d\n"++a);
    printf("%d\n", b++);
    printf("%d\n", b);
}
cs


우선 실행 결과를 보면 순서대로


1

0

1


이렇게 나옵니다


한 줄씩 살피도록 하죠

printf("%d\n"++a);
cs

++이 앞에 붙었습니다

그러면 먼저 값을 증가 시킨다고 했습니다

즉 printf를 작동시키기 전에 a의 값을 먼저 증가 시킨 후에 printf 를 작동시켰으므로 1 이 나오게 됩니다

printf("%d\n", b++);
cs


이번에는 연산자가 뒤에 붙었습니다


그럼 할 거 먼저 다하고나서 값을 증가 시킨다 했습니다


즉, b에 값을 증가 시키기 전에 printf를 먼저 하므로 원래있던 값인 0 이 나오게 됩니다


그 후에 값은 1이 됩니다


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

이전에 b에 ++을 해줬으므로 1이 나옵니다


아마 이해가 되셨을거라 생각 됩니다


혹시 이해가 안되는 경우에도 설명을 몇 번더 읽어 보시거나 나중에 사용하다보면 알게 될겁니다



a++(++a) 와 a += 1 과 a = a + 1 은 모두 같습니다


하지만 작동하는 속도는 증감연산자 < 복합대입연산자 < 대입 순으로 빠릅니다


즉 간결해지면 간결해질 수록 작동 속도도 빨라진다는 것이죠


그리고 C 언어라 하면 C++ 과 C#도 있습니다


이제 왜 이런 이름이 붙었는지 알 수 있을겁니다


C++은 C에 ++을 

C#은 C++에 ++을

++

++

이렇게 말이죠


그럼 이번 강좌는 마치도록 하겠습니다!


강좌 읽어주셔서 감사합니다


공감과 댓글은 생선에게 힘이됩니다!

더 많은 C언어 강좌

반응형
Comments