C 복합 할당C Compound Assignment

복합 할당 연산자는 단순 할당 연산자에 다른 이항 연산자를 결합한 것입니다.The compound-assignment operators combine the simple-assignment operator with another binary operator. 복합 할당 연산자는 추가 연산자로 지정된 연산을 수행한 다음 결과를 왼쪽 피연산자에 할당합니다.Compound-assignment operators perform the operation specified by the additional operator, then assign the result to the left operand. 예를 들어 다음과 같은 복합 할당 식은For example, a compound-assignment expression such as


expression1  
+=  
expression2  

다음과 같이 해석될 수 있습니다.can be understood as


expression1  
=  
expression1  
+  
expression2  

하지만 복합 대입 식은 expression1을 한 번만 계산하지만, 확장된 버전은 expression1을 두 번(더하기 연산과 대입 연산에서 한 번씩) 계산하기 때문에 복합 대입 식은 확장된 버전과 동일하지 않습니다.However, the compound-assignment expression is not equivalent to the expanded version because the compound-assignment expression evaluates expression1 only once, while the expanded version evaluates expression1 twice: in the addition operation and in the assignment operation.

복합 할당 연산자의 피연산자는 정수 계열 또는 부동 형식이어야 합니다.The operands of a compound-assignment operator must be of integral or floating type. 각 복합 할당 연산자는 해당하는 이항 연산자가 수행하는 변환을 수행하고 그에 따라 피연산자의 형식을 제한합니다.Each compound-assignment operator performs the conversions that the corresponding binary operator performs and restricts the types of its operands accordingly. 더하기 대입(+=) 및 빼기 대입(-=) 연산자에도 포인터 형식의 왼쪽 피연산자가 있을 수 있으며, 이 경우 오른쪽 피연산자가 정수 형식이어야 합니다.The addition-assignment (+=) and subtraction-assignment (-=) operators can also have a left operand of pointer type, in which case the right-hand operand must be of integral type. 복합 할당 연산의 결과는 왼쪽 피연산자의 값과 형식입니다.The result of a compound-assignment operation has the value and type of the left operand.

#define MASK 0xff00  

n &= MASK;  

이 예제에서 nMASK에 대해 비트 포함 AND 연산이 수행되고 결과가 n에 할당됩니다.In this example, a bitwise-inclusive-AND operation is performed on n and MASK, and the result is assigned to n. MASK 매니페스트 상수는 #define 전처리기 지시문을 사용하여 정의됩니다.The manifest constant MASK is defined with a #define preprocessor directive.

참고 항목See Also

C 할당 연산자C Assignment Operators