프로그래밍언어/C언어[초급]

[C언어][초급] Chapter16. 대입 연산자 – 값을 저장하는 가장 기본적인 연산

about_IT 2025. 4. 16. 19:56

프로그래밍에서 가장 처음 배우는 것이 변수이고, 그 다음 배우는 것이 바로 대입 연산자입니다.
대입 연산자는 어떤 값을 변수에 **저장(할당)**할 때 사용하며, 모든 프로그램의 기초가 되는 연산이에요.

이번 글에서는 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;으로 수정해야 함.