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 언어에서 변수를 움직이는 핵심 도구입니다.
특히 복합 대입 연산자는 코드를 더 짧고 명확하게 만들어주는 중요한 문법이죠!
이제 여러분은 값을 단순히 넣는 것에서 나아가,
값을 계산하며 저장하는 법까지 마스터하셨습니다 🎉
다음 시간에는 조건을 짧게 표현하는 삼항 연산자(?:) 를 배워볼 거예요.
그럼 오늘도 수고 많으셨습니다!
변수와 연산자, 완벽히 다지며 앞으로 나아가볼까요? 감사합니다 😊