순차적 확인 연산자Sequential-Evaluation Operator

"쉼표 연산자"라고도 하는 순차 계산 연산자는 두 피연산자를 왼쪽에서 오른쪽으로 순차적으로 계산합니다.The sequential-evaluation operator, also called the "comma operator," evaluates its two operands sequentially from left to right.

구문Syntax

expression:expression:
assignment-expressionassignment-expression

expression , assignment-expressionexpression , assignment-expression

순차 계산 연산자의 왼쪽 피연산자는 void 식으로 계산됩니다.The left operand of the sequential-evaluation operator is evaluated as a void expression. 연산 결과의 값 및 형식은 오른쪽 피연산자와 같습니다.The result of the operation has the same value and type as the right operand. 각 피연산자는 어떤 형식이든 될 수 있습니다.Each operand can be of any type. 순차 계산 연산자는 해당 피연산자 간에 형식 변환을 수행하지 않으며 l-value를 생성하지 않습니다.The sequential-evaluation operator does not perform type conversions between its operands, and it does not yield an l-value. 첫째 피연산자 다음에 시퀀스 위치가 있는데, 이것은 왼쪽 피연산자의 계산으로 인해 발생한 의도하지 않은 모든 결과가 오른쪽 피연산자의 계산을 시작하기 전에 완료됨을 의미합니다.There is a sequence point after the first operand, which means all side effects from the evaluation of the left operand are completed before beginning evaluation of the right operand. 자세한 내용은 시퀀스 위치를 참조하세요.See Sequence Points for more information.

순차 계산 연산자는 하나의 식만 사용할 수 있는 컨텍스트에서 두 개 이상의 식을 계산하는 데 사용됩니다.The sequential-evaluation operator is typically used to evaluate two or more expressions in contexts where only one expression is allowed.

일부 컨텍스트에서는 쉼표를 구분 기호로 사용할 수 있습니다.Commas can be used as separators in some contexts. 그러나 쉼표를 구분 기호로 사용하는 경우와 연산자로 사용하는 경우는 완전히 다르기 때문에 둘을 혼동하지 않도록 주의해야 합니다.However, you must be careful not to confuse the use of the comma as a separator with its use as an operator; the two uses are completely different.

예제Example

다음 예제에서는 순차 계산 연산자를 보여 줍니다.This example illustrates the sequential-evaluation operator:

for ( i = j = 1; i + j < 20; i += i, j-- );  

이 예제에서 for 문의 세 번째 식에 대한 각 피연산자는 독립적으로 계산됩니다.In this example, each operand of the for statement's third expression is evaluated independently. 왼쪽 피연산자 i += i가 먼저 계산된 다음 오른쪽 피연산자 j--가 계산됩니다.The left operand i += i is evaluated first; then the right operand, j--, is evaluated.

func_one( x, y + 2, z );  
func_two( (x--, y + 2), z );  

func_one에 대한 함수 호출에서 쉼표로 구분된 세 인수(x, y + 2, z)가 전달됩니다.In the function call to func_one, three arguments, separated by commas, are passed: x, y + 2, and z. func_two에 대한 함수 호출에서 괄호는 컴파일러가 첫 번째 쉼표를 순차적 계산 연산자로 해석하도록 합니다.In the function call to func_two, parentheses force the compiler to interpret the first comma as the sequential-evaluation operator. 이 함수 호출은 두 인수를 func_two에 전달합니다.This function call passes two arguments to func_two. 첫 번째 인수는 (x--, y + 2) 식의 값과 형식을 가진 순차적 계산 연산 y + 2의 결과이며, 두 번째 인수는 z입니다.The first argument is the result of the sequential-evaluation operation (x--, y + 2), which has the value and type of the expression y + 2; the second argument is z.

참고 항목See Also

쉼표 연산자: ,Comma Operator: ,