[C언어][초급] Chapter16. 대입 연산자 – 값을 저장하는 가장 기본적인 연산
프로그래밍에서 가장 처음 배우는 것이 변수이고, 그 다음 배우는 것이 바로 대입 연산자입니다.
대입 연산자는 어떤 값을 변수에 **저장(할당)**할 때 사용하며, 모든 프로그램의 기초가 되는 연산이에요.
이번 글에서는 C언어의 대입 연산자 사용법과 동작 원리를 간단한 예제와 함께 정리해보겠습니다.
● 대입 연산자란?
C언어에서 대입 연산자는 = 기호를 사용합니다.
=는 **"같다"**가 아니라 **"오른쪽 값을 왼쪽 변수에 저장한다"**는 뜻입니다.
int a = 10;
위 코드는 a라는 변수에 10이라는 값을 대입한 것입니다.
● 대입 연산의 방향
대입은 오른쪽 → 왼쪽 방향으로 동작합니다.
int a;
a = 5;
- a = 5;는 **"5라는 값을 a에 넣는다"**는 의미입니다.
- 수학의 a = b와는 다른 개념으로, "a와 b가 같다"는 뜻이 아닙니다.
● 대입 연산자 사용 예제
int a = 1;
int b = 2;
int sum;
sum = a + b; // a와 b를 더한 결과를 sum에 대입
이처럼 대입 연산자는 계산 결과나 함수 반환값 등을 저장하는 데도 사용됩니다.
● 여러 번 대입도 가능할까?
C언어에서는 **연쇄 대입(연속 대입)**도 가능합니다.
int a, b, c;
a = b = c = 100;
- 이 코드는 c에 먼저 100을 저장하고 → 그 값을 b, a에 차례로 복사하는 구조입니다.
- 괄호로 표현하면 이렇게 동작합니다: a = (b = (c = 100));
● 대입 연산자와 다른 연산의 조합
int a = 5;
a = a + 3; // a는 8이 됨
- a = a + 3;처럼 자기 자신을 포함한 대입도 가능하고,
- 다음 장에서 다룰 **복합 대입 연산자(+=, -= 등)**와 연결되기도 합니다.
● 주의할 점
자료형이 맞아야 합니다.
int a = 3.14; // 컴파일은 되지만 실수 → 정수로 변환되며 소수점은 사라짐
변수에 값을 저장하는 순서를 실수하지 않도록 합니다.
a = b; // O (b의 값을 a에 저장)
b = a; // O (반대도 가능)
==와 혼동하지 않기!
- =는 대입 연산자
- ==는 비교 연산자 (다음 장에서 다룰 예정)
대입 연산자는 프로그래밍에서 가장 자주 사용되는 연산 중 하나입니다.
단순히 값을 넣는 것 같지만, 연산의 방향, 자료형 간의 변환, 연속 대입, 연산 조합 등 다양한 측면에서 정확한 이해가 필요합니다.
실습 문제
아래 문제는 직접 코드를 작성해보고, 실행 결과를 확인한 후 스스로 정답을 유추해보는 형태입니다.
정답은 바로 아래에서 확인할 수 있습니다.
문제 1
정수형 변수 a, b를 선언하고 각각 10, 20을 대입한 후, 두 값을 더한 결과를 sum 변수에 저장하고 출력해보세요.
문제 2
아래 코드의 실행 결과는 무엇일까요?
int x, y, z;
x = y = z = 7;
printf("%d %d %d\n", x, y, z);
문제 3
다음 코드에서 잘못된 부분이 있다면 고쳐보세요.
int a;
5 = a;
문제 4
변수 score에 50을 대입한 후, score = score + 10; 코드를 실행했을 때, score의 최종 값은 얼마인가요?
문제 5
다음 중 대입 연산자가 잘못 사용된 코드를 고르세요.
A. int a = 5;
B. int b; b = 7;
C. int c == 10;
D. int d; d = c;
▶ 정답 확인하기
정답 1
int a = 10, b = 20;
int sum = a + b;
printf("합계: %d\n", sum); // 출력: 합계: 30
정답 2
출력 결과: 7 7 7
설명: 연쇄 대입으로 z부터 7이 대입되고 x까지 순서대로 전달됨.
정답 3
// 좌변에는 변수가 와야 함
// 잘못된 예: 5 = a; → 오류
// 올바른 예:
a = 5;
정답 4
score = 50;
score = score + 10; // → 60
정답: 60
정답 5
정답: C
설명: ==는 비교 연산자이므로 변수 선언 및 대입에 사용할 수 없음.
int c = 10;으로 수정해야 함.