[정답] 35. 대입 연산자

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

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

답: 32
i *= 4; 는 i = i*4; 와 같은 결과를 갖습니다.

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

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

답:
8 1
j=i==8; 은 i==8 연산을 수행한 후에 수행 결과를 j에 대입합니다.
i==8은 연산 결과가 참이므로 1입니다.

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

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

답:
i+2 = 9;
i+2는 연산 결과이므로 상수입니다.
상수는 대입 연산자 좌항에 올 수 없습니다.