35. 대입 연산자

=, +=, -=, *=, /=, %= 등

대입 연산은 변수의 값을 설정할 때 사용하는 연산이죠.
이러한 이유로 대입 연산의 좌항에는 상수 표현은 올 수 없으며 l- value라 불러요.

대입 연산자에는 우항의 값을 좌항에 대입하는 단순 대입 연산과 좌항과 우항의 값을 더하거나 빼는 등의 연산을 수행한 후에 좌항에 대입하는 복합 대입 연산도 있어요.

◈ 복합 대입 연산 예

#include <stdio.h>
int main()
{
    int i = 2;
    i +=  4; // i = i + 4; 와 같은 표현
    printf("i: %d \n",i);
    return 0;
}

◈ 실행 결과

i: 6

주의할 점은 대입 연산은 모든 연산 중에 우선 순위가 가장 낮다는 것이예요.
예를 들어 i = j == 3; 구문은 j의 값이 3이면 i에 1을 대입하고 3 이외의 값이면 0을 대입하는 구문이예요.
하나의 구문에 두 개 이상의 연산을 수행할 때는 ( )괄호 연산자를 이용하여 먼저 수행할 연산을 명확하게 표현하세요.

◈ 대입 연산자의 우선 순위를 확인하는 예

#include <stdio.h>
int main()
{
    int i = 0,  j = 0;
 
    j=0;
    i = j != 3;
    printf("%d\n",i);
 
    j = 1;
    i = j != 3;
    printf("%d\n",i);
 
    j = 2;
    i = j != 3;
    printf("%d\n",i);
    return 0;
}

◈  실행 결과

1
1
1

◈ 기본 연습 (정답 바로가기)
1. 다음 프로그램의 출력 결과를 예측하시오.

#include <stdio.h>
int main()
{
    int i = 8;
    i *= 4;
    printf("%d \n", i);
    return 0;
} 

2. 다음 프로그램의 출력 결과를 예측하시오.

#include <stdio.h>
int main()
{
    int i = 8;
    int j = 0;
 
    j = i == 8; 
    printf("%d %d\n", i, j);
    return 0;
}

3. 다음 프로그램에서 잘못된 부분을 찾고 이유를 설명하시오.

#include <stdio.h>
int main()
{
    int i = 8;
    i + 2 = 9;
    printf("%d \n", i);
    return 0;
}