C++에서 쉼표 연산자(comma operator)는 여러 개의 표현식을 하나로 연결하는 역할을 합니다. 쉼표로 구분된 표현식 목록 전체의 값은 가장 오른쪽에 있는 표현식의 값이 됩니다.
쉼표 연산자의 기본 원리
쉼표 연산자를 사용하면 나열된 표현식들이 왼쪽에서 오른쪽 순서대로 차례차례 평가됩니다. 이때 중간에 있는 표현식들의 결과값은 모두 버려지고, 최종적으로 맨 오른쪽 표현식의 값만이 전체 표현식의 결과값이 됩니다. 즉, 쉼표 연산자의 본질적인 효과는 일련의 연산을 순차적으로 수행하도록 만드는 것입니다.
예제 코드
다음 프로그램은 쉼표 연산자의 동작 방식을 보여줍니다.
#include <iostream>
using namespace std;
int main() {
int i, j;
j = 10;
i = (j++, j+100, 999+j);
cout << i;
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 나옵니다.
1010
결과 분석
변수 i의 값이 1010으로 계산되는 과정을 단계별로 살펴보면 다음과 같습니다.
먼저 j는 10으로 초기화됩니다. 그다음 j++에 의해 j가 11로 증가합니다(증가 이전의 값 10은 버려집니다). 이어서 j + 100이 계산되지만 이 결과(111) 역시 버려집니다. 마지막으로 999 + j, 즉 999 + 11이 계산되어 최종 결과값인 1010이 i에 대입됩니다.
이처럼 쉼표 연산자는 여러 작업을 한 줄에서 순서대로 처리해야 할 때 유용하게 사용할 수 있으며, 실제 결과로 남는 것은 항상 가장 마지막 표현식의 값이라는 점을 기억하는 것이 중요합니다.