본문 바로가기
개발/C++ (98,03,11,14,17,20,23)

Before Classic C++ : Comma Operator

by snowoods 2025. 10. 26.

Before Classic C++

 

04. 나열 연산자 (Comma Operator)

 

개요

나열 연산자(,)는 여러 표현식을 왼쪽에서 오른쪽으로 순서대로 평가하는 연산자입니다. 전체 표현식의 결과값은 가장 오른쪽 표현식의 값이 됩니다.

 

C++ 버전별 주요 키워드 도입 시기

  • C99 이전 (C/C++): 쉼표 연산자는 C 언어 초기부터 존재했으며, C++에서도 처음부터 지원되었습니다.

 

내용 설명

쉼표 연산자는 두 개의 피연산자를 가집니다. 왼쪽 피연산자를 먼저 평가하고, 그 결과를 버린 뒤 오른쪽 피연산자를 평가합니다. 전체 연산의 결과는 오른쪽 피연산자의 값과 타입이 됩니다. 주로 for 루프의 초기화나 증감 부분에서 여러 변수를 한 번에 처리할 때 사용됩니다.

 

예제 코드

#include <iostream>

int main() {
    int i, j, k;

    // 예제 1: 변수 할당
    // 1. j에 3이 할당됩니다. (j=3)
    // 2. k에 j+2 (즉, 5)가 할당됩니다. (k=5)
    // 3. k*3 (즉, 15)가 평가되고, 이 값이 i에 할당됩니다.
    i = (j = 3, k = j + 2, k * 3);

    std::cout << "--- Example 1 ---" << std::endl;
    std::cout << "j = " << j << std::endl;
    std::cout << "k = " << k << std::endl;
    std::cout << "i = " << i << std::endl;

    // 예제 2: for 루프에서 사용
    std::cout << "\n--- Example 2 ---" << std::endl;
    for (int x = 0, y = 10; x <= 5; ++x, --y) {
        std::cout << "x: " << x << ", y: " << y << std::endl;
    }

    return 0;
}

 

실행 결과

--- Example 1 ---
j = 3
k = 5
i = 15

--- Example 2 ---
x: 0, y: 10
x: 1, y: 9
x: 2, y: 8
x: 3, y: 7
x: 4, y: 6
x: 5, y: 5

 

활용팁

  • for 루프에서 여러 변수를 동시에 초기화하거나 업데이트할 때 코드를 간결하게 만들 수 있습니다.
  • 함수 인자 목록이나 변수 선언에 사용되는 쉼표는 연산자가 아니라 구분자(separator)이므로 혼동하지 않도록 주의해야 합니다.
  • 가독성을 해칠 수 있으므로 for 루프 외의 복잡한 표현식에서는 남용하지 않는 것이 좋습니다.