C언어 초급 - 5장: 연산자와 표현식 (5.2 대입 연산자 (=))

2025. 2. 23. 16:48프로그래밍 언어/C

5.2 대입 연산자 (=)

C 언어에서 대입 연산자(Assignment Operator)는 변수에 값을 저장하는 데 사용됩니다.
또한 복합 대입 연산자(Compound Assignment Operators)를 사용하면 연산과 대입을 한 번에 수행할 수 있어 코드가 더 간결해집니다.


1. 대입 연산자 (=)

1.1 = 연산자의 개념

대입 연산자는 오른쪽 값(값, 표현식)을 왼쪽 변수에 저장하는 역할을 합니다.

변수 = 값;

📌 특징

  • = 연산자는 "같다(equal)"가 아니라 "대입(assign)"을 의미함.
  • 오른쪽의 값을 왼쪽 변수에 저장하는 연산.
  • 기존 변수의 값이 새로운 값으로 덮어쓰기됨.

1.2 = 연산자 예제

#include <stdio.h>

int main() {
    int a;

    a = 10;  // 변수 a에 10을 저장
    printf("a의 값: %d\n", a);

    a = 20;  // 변수 a의 값을 20으로 변경
    printf("변경된 a의 값: %d\n", a);

    return 0;
}

출력 결과

a의 값: 10
변경된 a의 값: 20

📌 변수 a의 값이 10에서 20으로 덮어쓰기됨.


2. 복합 대입 연산자 (+=, -=, *=, /=, %=)

2.1 복합 대입 연산자의 개념

복합 대입 연산자는 연산과 대입을 한 번에 수행하는 연산자입니다.

연산자 설명  **예제 (a = 10) 동일한 표현
+= 덧셈 후 대입 a += 5; a = a + 5;
-= 뺄셈 후 대입 a -= 3; a = a - 3;
*= 곱셈 후 대입 a *= 2; a = a * 2;
/= 나눗셈 후 대입 a /= 2; a = a / 2;
%= 나머지 후 대입 a %= 3; a = a % 3;

📌 장점

  • 코드가 더 간결해짐.
  • 연산 속도가 약간 더 최적화될 가능성 있음.
  • a = a + 5;보다 a += 5;가 더 직관적임.

2.2 복합 대입 연산자 예제

#include <stdio.h>

int main() {
    int a = 10;

    a += 5;  // a = a + 5
    printf("a += 5 : %d\n", a);  // 15

    a -= 3;  // a = a - 3
    printf("a -= 3 : %d\n", a);  // 12

    a *= 2;  // a = a * 2
    printf("a *= 2 : %d\n", a);  // 24

    a /= 4;  // a = a / 4
    printf("a /= 4 : %d\n", a);  // 6

    a %= 5;  // a = a % 5
    printf("a %%= 5 : %d\n", a);  // 1

    return 0;
}

출력 결과

a += 5 : 15
a -= 3 : 12
a *= 2 : 24
a /= 4 : 6
a %= 5 : 1

📌 설명

  • a += 5; → a = a + 5;
  • a -= 3; → a = a - 3;
  • a *= 2; → a = a * 2;
  • a /= 4; → a = a / 4;
  • a %= 5; → a = a % 5;

3. 복합 대입 연산자의 활용 예제

3.1 반복문과 함께 사용하기

복합 대입 연산자는 반복문과 함께 사용할 때 유용합니다.

#include <stdio.h>

int main() {
    int sum = 0;

    for (int i = 1; i <= 5; i++) {
        sum += i;  // sum = sum + i
    }

    printf("1부터 5까지의 합: %d\n", sum);

    return 0;
}

출력 결과

1부터 5까지의 합: 15

📌 설명

  • sum += i;는 sum = sum + i;와 같음.
  • sum에 i 값을 반복해서 더하여 누적.

3.2 사용자 입력값 누적 계산

사용자가 입력한 숫자를 계속 더하는 프로그램을 작성할 수 있습니다.

#include <stdio.h>

int main() {
    int total = 0, num;

    printf("세 개의 숫자를 입력하세요: ");

    for (int i = 0; i < 3; i++) {
        scanf("%d", &num);
        total += num;  // total = total + num
    }

    printf("총합: %d\n", total);

    return 0;
}

실행 예시

세 개의 숫자를 입력하세요: 5 10 20
총합: 35

📌 설명

  • total += num;은 입력된 숫자를 total 변수에 누적.
  • for 반복문을 사용하여 사용자로부터 여러 개의 숫자를 입력받아 합산.

4. 정리

연산자  설명  사용 예제 동일한 표현
= 대입 a = 10; 값 저장
+= 덧셈 후 대입 a += 5; a = a + 5;
-= 뺄셈 후 대입 a -= 3; a = a - 3;
*= 곱셈 후 대입 a *= 2; a = a * 2;
/= 나눗셈 후 대입 a /= 4; a = a / 4;
%= 나머지 후 대입 a %= 5; a = a % 5;

📌 복합 대입 연산자의 특징

  • 연산과 대입을 한 번에 수행 → 코드가 간결해짐.
  • 반복문과 함께 사용하면 가독성이 향상됨.
  • a = a + 5; 대신 a += 5; 사용.