본문 바로가기

C Language/Programming Course

2장 연산자(2부 산술연산자) 첫번째 시간


2장 연산자

2부 산술연산자

    연산자 첫 시간으로 우리가 가장 많이 사용해 온 산술연산자에
    대해서 알아 보겠습니다.
    먼저 산술연산자에 대해서 알아 보면 
    정의를 내리기 보다는 수학시간에 배운 사칙연산    +, -, *, / 를 생각하면 됩니다. 
    그리고 여기에서 %(나머지) 연산자도 산술 연산자에 포함이 됩니다.

    그럼 간단한 산수 문제를 한번 내 보겠습니다. 
    x에 5을 넣고 y에 6을 넣습니다. 그럼 x + y 연산을 한 결과를
    z에 넣으면, z는 얼마일까요!? 전부 z는 11이라고 하시겠죠?
    그럼 이 말을 식으로 적으면, x + y = z라고 적으실 겁니다.
    이 식이 바로 연산자를 사용한 식입니다. c언어라고 해서 다른 건 특별히 없습니다.
    곧 말할 결합성 부분을 빼고는 다 같게 사용합니다. 
    그리고 이 식에서 나오는 연산자는 다음시간에 배울 대입 연산자(=)과 산술연산자(+)가
    있다는 것을 알 수 있습니다. 
    여기에서 이제 중요한 것을 말할 것입니다. 
    방금 제가 위에서 결합성이라는 단어를 이야기 하였는데요.
    이 것은 무엇인지 알기 위해 먼저  우선순위라는 것에 대해서 알아 보면
    우선순위는 +와 * 연산자가 같이 있을 경우 *연산을 먼저 실행한 후 +연산을 실행하는 것입니다. 
    여기서 만약 + 와 +가 있다면 어떤 연산자를 실행해야 되는가 하는 문제가 생기는 데 이것이
    결합성 입니다. 
   
    +, -, *, /, %연산은 모두 왼쪽에서 오른쪽으로 결합성이 이루어 진다는 것은 알고 있을 것입니다. 
    하지만 대입(=)연산자는 수학에서는 왼쪽에서 오른쪽이지만 
    c언어에서는 오른쪽에서 왼쪽으로 결합성이 이루어 집니다. 
    
    즉, c언어 코드로 변환을 시킨다면

    z = x + y;
    이렇게 쓰여 지게 됩니다. 

    다음시간에 다시 대입연산자에 대해서 이야기를 하겠지만
    수학 연산과 차이가 있는 부분이기 때문에 꼭 알고 있어야 되는 부분입니다. 

    그리고 나머지 연산자(%)에 대해서 말을 해 보겠습니다. 
    나머지 연산자는 말그대로 나눗셈의 나머지 값을 구하는 연산자 입니다. 
    예를 들어 11/5를 하게 되면 몫은 2가 나오고 나머지는 1이 나오게 됩니다.
    여기서 우리는 나머지인 1을 구하고 싶을 때 사용을 합니다. 

    즉 코드로 표현한다면, 

    x = 11 % 5;

    이렇게 나타 내면 됩니다. 
    
    여기까지가 기본적인 산술연산자에 대하여 간단하게 이야기를 해 보았습니다.
    다음 시간에는 부호연산자와 대입 연산자에 대해서 알아 보도록 하겠습니다.


산술 연산을 사용한 예제
===========================================   
    #include <stdio.h>
   
    int main()
    {
        int integer1, integer2;
        int add, mul, sub, div, mod;
    
    
        printf("계산할 첫번째 숫자를 입력하세요 : ");
        scanf("%d", &integer1);
        printf("계산할 두번째 숫자를 입력하세요 : ");
        scanf("%d", &integer2);

        add = integer1 + integer2;
        printf("두 값을 더한 결과는 : %d\n", add);

        sub = integer1 - integer2;
        printf("두 값을 뺀 결과는 : %d\n", sub);

        mul = integer1 * integer2;
        printf("두 값을 곱한 결과는 : %d\n", mul);

        div = integer1 / integer2;
        printf("두 값을 나눈 결과는 : %d\n", div);

        mod = integer1 % integer2;
        printf("두 값을 나눈 후 나머지 결과는 : %d\n", mod);


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