본문 바로가기

BackEnd/C

다양한 연산자들의 소개

반응형

1. 복합 대입 연산자


복합 대입 연산자는 다른 연산자와 묶여서 정의된 연산자이다.


         


2. 부호 연산자로서의 + 와 -


피연산자가 하나인 단항 연산자로서의 +,- 연산자에 대해 살펴보자


1) 부호 - 연산자


- 단항 연산자로서 부호를 바꾸는 역할을 한다.


2) 부호 + 연산자

     

- 단한 연사자로서 아무런 기능을 제공하지 않는다.


- 그러면 연산자로 존재하는 이유는? 컴파일 오류를 발생시키지 않기 위해서이다.


- +125와 같은 표현함으로써 음수가 아님을 강조하기도 한다.


3. 증가,감소 연산자(++,--) : prefix - 전위 증감





4. 증가,감소 연산자(++,--) : postfix - 후위 증감





5. prefix와 postfix의 비교


아래 그림을 보면 피연산자에 저장된 값을 1증가시키는 것은 같으나 적용 시점이 다르다.


아래 코드의 출력 결과를 봐보자


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(void)
{
    int num1 = 7;
    int num2;
    int num3 = 7;
    int num4;
 
    num2 = ++num1;
 
    printf("num1: %d \n", num1);//8
    printf("num2: %d \n", num2);//8
 
    num4 = num3++;
 
    printf("num2: %d \n", num3);//8
    printf("num3: %d \n", num4);//7
 
    return 0;
}
cs


1
2
3
4
num1: 8
num2: 8
num2: 8
num3: 7
cs


prefix++의 경우 먼저 값이 증가된후 대입이 이루어졌고,

postfix++의 경우 먼저 대입이 이루어진후 증가가 되었다. 


6. 애매한 형태의 증가 및 감소 연산자


한 문장 안에서 동일한 변수를 가지고 두번 이상 postfix++,postfix-- 연산을 하면 결과가 컴파일러에 따라 달라진다.


따라서 아래와 같이 해석할 상황을 만들지 않는것이 좋다.

    


7. 콤마(,) 연산자


콤마도 연산자이다. 


- 한 문장 내에서 둘 이상의 변수 선언시 사용

- 한 문장 내에서 둘 이상의 연산문 구성 시 사용

- 한 문장 내에서 둘 이상의 함수 호출문 구성시 사용



1
2
3
4
5
6
7
8
9
int main(void)
{
    int a=1, b=2;
 
    a++, b++printf("postfix ++ 연산 실행 \n");
    printf("a: %d, ", a), printf("b: %d \n", b);
 
    return 0;
}
cs


반응형

'BackEnd > C' 카테고리의 다른 글

자료형 변환 연산자  (0) 2018.12.10
관계연산자와 논리연산자  (0) 2018.12.10
연산자들의 우선순위와 결합방향  (0) 2018.12.10
산술 연산자를 통해서 보는 연산의 원리  (0) 2018.12.10
상수의 이해  (0) 2018.12.05