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 값이 계산되는 과정
i의 값이 계산되는 과정은 다음과 같습니다.
먼저 j는 값 10으로 시작합니다. 그다음 j++에 의해 j는 11로 증가합니다. 이후 j+100이 평가되지만 그 결과는 버려집니다. 마지막으로 아직 11을 담고 있는 j에 999를 더해 최종 결과인 1010이 i에 대입됩니다.
이처럼 쉼표 연산자는 각 표현식을 왼쪽에서 오른쪽 순서로 평가하고, 가장 마지막 표현식의 값만을 반환한다는 점을 기억하면 됩니다.