본문 바로가기
  • 오늘도 신나게
카테고리 없음

초등학생도 이해하는 C 언어 - 대입 연산자

by 앵그리선반장 2023. 11. 28.

대입 연산자는 기본적으로 ' = ' 을 말합니다.
일반 수학에서 '=' 는 "같다" 로 해석되지만 C 언어를 포함한 대부분의 프로그래밍 언어에서는 "같다" 가 아니라 "대입하라"가 됩니다.
그럼 "같다" 는 없나요?  당연히 있습니다. '=' 을 두 번 써서 표현합니다. "=="  이렇게요.
그래서 다음 두 코드는 다르게 해석 됩니다 

a = b;
a == b;

첫 번째 라인은 a 에 b를 넣으라는 뜻이고, 두 번째 라인은 a 와 b 가 같다는 뜻입니다.
두 번째 라인은 아무런 동작도 하지 않습니다.

'=' 연산자는 다중 대입을 사용해서 여러 변수의 값을 동시에 변경 할 수 도 있습니다.
예를 들어 세개의 변수를 선언하고 같은 값으로 초기화를 한다면, 풀어써서 아래와 같이 쓸 수 있습니다.

int a, b, c;
a = 10;
b = 10;
c = 10;

하지만, 이것을 '=' 연산자의 다중 대입으로 한 줄로 바꿀 수 도 있습니다.

int a, b, c;
a = b = c = 10;

 

대입 연산자 ' = ' 을 다른 연산자들과 복합해서 다양한 형태로 사용이 가능한데요.
그 종류는 +=, -=, *=, /=, %= 등이 있습니다.
이 복합 연산자는 연산과 대입을 동시에 처리하는 형태입니다.
예를 들어 x 라는 변수에 1 을 더하는 과정을 풀어서 쓰면 아래와 같습니다.

int x = 3;
x = x+1;

이 코드는 x 라는 변수에 1 을 더한 값을 다시 x 에 대입시킴으로써 그 값을 1 증가하는 효과를 만들어냅니다.
이 과정을 복합연산자 "+=" 을 사용해서 쓰면 아래와 같습니다.

int x = 3;
x += 1;

결과는 같습니다.
-=, *=, /=, %= 도 모두 같은 원리입니다. 예를 들어보면,

int z = 10;
z -= 5; // z = z - 5와 같음. z에 5를 뺀 값을 z에 할당
z *= 2; // z = z * 2와 같음. z에 2를 곱한 값을 z에 할당
z /= 4; // z = z / 4와 같음. z를 4로 나눈 값을 z에 할당
z %= 3; // z = z % 3와 같음. z를 3으로 나눈 나머지를 z에 할당

대입 연산자들을 복합해서 괄호가 사용된 수학식들을 표현할 수 도 있는데요.
그 예제를 들어보겠습니다.

int main() {
    int a = 10, b = 5, c = 3;

    // 복합 대입 연산자들을 조합하여 복잡한 표현식 생성
    a += b * c; // a = a + (b * c)
    b -= a / c + 2; // b = b - (a / c + 2)
    c *= a - b; // c = c * (a - b)

    printf("a: %d, b: %d, c: %d\n", a, b, c);

    return 0;
}

이러한 복합적인 표현 방식을 사용하면 코드를 간결하게 유지하면서도 원하는 연산을 수행할 수 있습니다.
대입 연산자는 증가, 감소 등을 표현할 때도 사용되므로 잘 익혀 두는 것이 좋겠습니다.

댓글