C 복합 할당

복합 할당 연산자는 단순 할당 연산자에 다른 이항 연산자를 결합한 것입니다. 복합 할당 연산자는 추가 연산자로 지정된 연산을 수행한 다음 결과를 왼쪽 피연산자에 할당합니다. 예를 들어 다음과 같은 복합 할당 식은

expression1+=expression2

다음과 같이 해석될 수 있습니다.

expression1=expression1+expression2

하지만 복합 대입 식은 expression1을 한 번만 계산하지만, 확장된 버전은 expression1을 두 번(더하기 연산과 대입 연산에서 한 번씩) 계산하기 때문에 복합 대입 식은 확장된 버전과 동일하지 않습니다.

복합 할당 연산자의 피연산자는 정수 계열 또는 부동 형식이어야 합니다. 각 복합 할당 연산자는 해당하는 이항 연산자가 수행하는 변환을 수행하고 그에 따라 피연산자의 형식을 제한합니다. 더하기 대입(+=) 및 빼기 대입( -= ) 연산자에도 포인터 형식의 왼쪽 피연산자가 있을 수 있으며, 이 경우 오른쪽 피연산자가 정수 형식이어야 합니다. 복합 할당 연산의 결과는 왼쪽 피연산자의 값과 형식입니다.

#define MASK 0xff00

n &= MASK;

이 예제에서 nMASK에 대해 비트 포함 AND 연산이 수행되고 결과가 n에 할당됩니다. MASK 매니페스트 상수는 #define 전처리기 지시문을 사용하여 정의됩니다.

참조

C 할당 연산자