C 기본 문법 – 연산자 – 4 – 대입 연산자

C 기본 문법 – 연산자 – 4편: 대입 연산자 완전 정복

안녕하세요, C 언어를 차근차근 마스터해가는 여러분 😊
이번 시간에는 프로그래밍에서 절대로 빠질 수 없는, 너무나도 자주 쓰이는 **대입 연산자(Assignment Operators)**에 대해 배워보겠습니다.

대입 연산자는 이름 그대로 **값을 변수에 ‘할당’하거나 ‘저장’**하는 데 사용하는 연산자예요.
마치 택배를 변수라는 집 주소에 전달해주는 배송기사 같은 역할이죠!

그럼 지금부터 기본 대입 연산자부터 **복합 대입 연산자(+=, -= 등)**까지
예시와 함께 아주 친절하고 꼼꼼하게 알려드릴게요 😊


대입 연산자란?

대입 연산자는 값을 변수에 저장하는 연산자입니다.

가장 기본적인 형태

변수 = 값;

예:

int x;
x = 10;  // 변수 x에 10이라는 값을 저장

🎯 비유하자면,
대입 연산자는 **“이 변수에 이 값 넣어줘!”**라고 컴퓨터에게 명령하는 역할이에요.


대입 연산자의 종류

연산자 의미 예시 설명
= 기본 대입 x = 5; 오른쪽 값을 왼쪽 변수에 저장
+= 더하고 대입 x += 2; x = x + 2;와 같음
-= 빼고 대입 x -= 2; x = x - 2;
*= 곱하고 대입 x *= 2; x = x * 2;
/= 나누고 대입 x /= 2; x = x / 2;
%= 나머지 대입 x %= 3; x = x % 3;
&= 비트 AND 대입 x &= y; x = x & y;
` | =` 비트 OR 대입 `x | = y;` `x = x | y;`
^= 비트 XOR 대입 x ^= y; x = x ^ y;
<<= 왼쪽 시프트 대입 x <<= 1; x = x << 1;
>>= 오른쪽 시프트 대입 x >>= 1; x = x >> 1;

예제로 쉽게 이해하기

#include <stdio.h>

int main() {
    int x = 10;

    x += 5;  // x = 15
    x -= 3;  // x = 12
    x *= 2;  // x = 24
    x /= 4;  // x = 6
    x %= 4;  // x = 2

    printf("최종 결과: %d
", x);
    return 0;
}

출력 결과:

최종 결과: 2

💡 복합 대입 연산자는 코드를 짧고 간결하게 만들어줘요!


복합 대입 연산자 사용의 장점

장점 설명
코드 간결화 x = x + 1;x += 1;
가독성 향상 계산 목적이 명확하게 드러남
속도 약간 향상 일부 컴파일러에서 더 최적화됨

실전 예제: 점수 누적 합산

#include <stdio.h>

int main() {
    int score = 0;

    score += 10;  // 퀘스트 1
    score += 20;  // 퀘스트 2
    score += 30;  // 보스 처치

    printf("총 점수: %d
", score);
    return 0;
}

주의해야 할 대입 연산 오류들

❌ 실수 1: 비교 연산자와 헷갈림

if (x = 5)  // ❌ 대입입니다!
  • x = 5는 항상 참(5)으로 인식됨
  • 비교는 반드시 == 사용해야 해요!

✅ 바른 코드:

if (x == 5)  // 비교

비트 연산과 대입 연산의 결합

int flags = 0b0001;  // 1

flags |= 0b0100;     // 비트 OR 대입 → flags = 0b0101
flags &= 0b0111;     // 비트 AND 대입 → 일부 비트 제거

printf("현재 플래그: %d
", flags);  // 출력: 5

📌 비트 대입 연산은 하드웨어 제어나 상태 관리 시 유용하게 쓰여요!


✅ 대입 연산자 한눈에 정리

연산자 의미 같은 표현
= 값 대입 x = 5;
+= 더해서 저장 x = x + 2;
-= 빼서 저장 x = x - 2;
*= 곱해서 저장 x = x * 3;
/= 나눠서 저장 x = x / 2;
%= 나머지 저장 x = x % 2;
<<= 왼쪽 시프트 x = x << 1;
>>= 오른쪽 시프트 x = x >> 1;
&= 비트 AND x = x & y;
` | =` 비트 OR `x = x | y;`
^= 비트 XOR x = x ^ y;

⚠️ 대입 연산자 사용 시 주의할 점

주의사항 설명
=는 비교가 아니라 값 저장 x = 5는 항상 참으로 간주될 수 있음
복합 대입 시 자료형 유의 float += int 등 자료형 혼합 시 자동 형변환 주의
순서 주의 x = y += 2;처럼 중첩될 수 있음. 읽기 어렵다면 나누세요
비트 연산 복합 대입은 부호에 주의 음수 시프트나 비트 반전은 예외 처리 필요

마무리하며 💬

대입 연산자는 C 언어에서 변수를 움직이는 핵심 도구입니다.
특히 복합 대입 연산자는 코드를 더 짧고 명확하게 만들어주는 중요한 문법이죠!

이제 여러분은 값을 단순히 넣는 것에서 나아가,
값을 계산하며 저장하는 법까지 마스터하셨습니다 🎉

다음 시간에는 조건을 짧게 표현하는 삼항 연산자(?:) 를 배워볼 거예요.
그럼 오늘도 수고 많으셨습니다!
변수와 연산자, 완벽히 다지며 앞으로 나아가볼까요? 감사합니다 😊

답글 남기기