C Language/Programming Course

2장 연산자(3부 부호연산자와 대입연산자) 첫번째 시간

행복하면 2009. 6. 23. 11:04

2장 연산자

3부 부호 연산자와 대입 연산자

    이번시간에는 부호 연산자와 대입연산자에 대해서 알아 보겠습니다. 
    부호 연산자와 대입 연산자도 초등학교때 부터 사용해 온 연산자 입니다.
    부호 연산자는 앞에서 표로 봤듯이 음수, 양수를 나타내는 것이고, 
    대입연산자는 저번 시간에 잠깐 이야기 했듯이 = 를 사용 하는 겁니다. 
    
    먼저 대입연산자에 대해서 알아 보겠습니다. 
    대입연산자는 저번 산술 연산자를 할 때도 잠시 사용을 해 보았고, 1장의 입출력 강의를
    할 때도 코드에 이미 나와 있었습니다. 
    
    코드에서는 변수 선언하고 바로 정의 할때
    
    int integer = 10;
   
    이렇게 하는 것으로 사용을 하였습니다. 

    그리고 산술 연산자와 사용을 할 때는

    ret = 1 + 3
    
    이렇게 하는 것으로 사용하였습니다. 
    저번시간에 이 결합성에 대해서 이야기를 하다가 말았는데요.
    이 결합성은 앞 강의 때 말한 것 처럼 같은 우선순위에 있는 연산에 대한 우선순위를
    준다고 하였습니다. 

    즉, 3+4+2-1 이런 식이 있다면
    먼저 3+4를 하고 이 결과와 2를 더하고 그 결과에 1을 빼는 식으로 합니다. 
    그 이유는 바로 결합성 때문에 그런건데 

    대입 연산자의 결합성을 보게 되면

    일반 수학에서는 왼쪽에서 오른쪽으로 결합이 이루어 지게 됩니다. 

    3 + 4 = x
    이런식으로 왼쪽의 값이 오른쪽으로 되는 형식 입니다. 

    하지만 c언어에서는 이와 반대로
    
     x = 3 + 4 되는데 
     이는 c언어에서 대입연산자의 결합성은 오른쪽에서 왼쪽으로 되기 때문입니다. 
     다시 말하면 c언어에서는 좌변에는 실제적으로 메모리를 점유하고 있는 변수들이 올수 있으며
     우변에는 좌변에 값을 넣는 값들이 올 수 있다는 것입니다. 

     그리고 대입연산자와 산술연산자를 이용하여 축약연산자라는 것을 만들 수 있습니다. 
     축약연산자란 말그대로 연산을 축약 시킨 것입니다. 
     예를 들어서 설명을 해 보겠습니다. 

     sum = sum + count;
     이런 연산이 있습니다. 
     연산을 보게 되면 같은 sum라는 변수가 2번 쓰였다는 것을 알 수 있습니다. 
     즉, 원래의 sum 변수에 count 값을 더한다는 뜻을 가지고 있는데 
     이 같은 뜻을 가진 sum변수를 두번 쓰는 것보다 하나로 줄이는 것이
     낫기 때문에 축약연산자라는 것을 사용합니다. 

     사용방법은 
     sum += count;
     이런식으로 우변에 있는 sum변수를 없애고 
     산술연산자와 대입연산자를 같이 쓰면 됩니다. 

     즉 ,
     sum  = sum - count               =>    sum -= count
     sum  = sum * count               =>    sum *= count
     sum  = sum / count               =>    sum /= count
     sum  = sum % count              =>    sum %= count

     이렇게 사용하면 됩니다. 
    
    다음으로  부호연산자에 대해서 알아 보겠습니다.
    부호연산자도 다른 뜻이 없이 말그대로 값의 양과 음의 값을 나타내 주는 연산자 입니다. 
    즉, 
    숫자 1이 있다고 하면
    이 숫자가 +인지 -인지 보여 주는 연산자라고 생각하면 됩니다. 
    통상적으로 양수일 경우는 +를 안 보여 주고 1을 사용하고 음수는 꼭 숫자 앞에 -를 붙여 줍니다. 

    그리고 변수 선언하는 예로 보면

    int a = -1;
    int b = 1;
    int c = +1;
   
    이렇게 사용을 하면 됩니다. 
    이 부분에 대해서는 다 아는 것들이라 다른 부분도 따로 없기 때문에 길게는 
    설명을 안하겠습니다. 

    다음시간에는 관계연산자에 대해서 알아보도록 하겠습니다.

부호 연산 및 대입 연산을 사용한 예제
===========================================   
    #include <stdio.h>
   
    int main()
    {
        int integer1 = -1;
        int integer2 = 1;
        int sum = 0; 
        int count;
        
        printf("음수 : %d, 양수 : %d\n", integer1, integer2);

        printf("숫자를 입력 : ");
        scanf("%d", &count);

        sum += count;
        printf("더하기 : %d\n", sum);

        return 0;
    }
===========================================