Assegnazione composta CC Compound Assignment

Gli operatori di assegnazione composta combinano l'operatore di assegnazione semplice con un altro operatore binario.The compound-assignment operators combine the simple-assignment operator with another binary operator. Gli operatori di assegnazione composta eseguono l'operazione specificata dall'operatore aggiuntivo, quindi assegnano il risultato all'operando sinistro.Compound-assignment operators perform the operation specified by the additional operator, then assign the result to the left operand. Ad esempio, un'espressione di assegnazione composta qualeFor example, a compound-assignment expression such as


expression1  
+=  
expression2  

può essere considerata comecan be understood as


expression1  
=  
expression1  
+  
expression2  

Tuttavia, l'espressione di assegnazione composta non equivale alla versione espansa perché l'espressione di assegnazione composta valuta solo una volta expression1, mentre la versione espansa valuta due volte expression1: nell'operazione di addizione e nell'operazione di assegnazione.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.

Gli operandi di un operatore di assegnazione composta devono essere di tipo integrale o mobile.The operands of a compound-assignment operator must be of integral or floating type. Ogni operatore di assegnazione composta esegue le conversioni effettuate dall'operatore binario corrispondente e limita i tipi dei relativi operandi di conseguenza.Each compound-assignment operator performs the conversions that the corresponding binary operator performs and restricts the types of its operands accordingly. Gli operatori di assegnazione di addizione (+=) e di sottrazione (-=) possono anche avere un operando sinistro di tipo puntatore, nel qual caso l'operando destro deve essere di tipo integrale.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. Il risultato di un'operazione di assegnazione composta ha il valore e il tipo dell'operando sinistro.The result of a compound-assignment operation has the value and type of the left operand.

#define MASK 0xff00  

n &= MASK;  

In questo esempio, l'operazione AND inclusivo bit per bit viene eseguita su n e MASK e il risultato viene assegnato a n.In this example, a bitwise-inclusive-AND operation is performed on n and MASK, and the result is assigned to n. La costante MASK del manifesto viene definita con una direttiva per il preprocessore #define.The manifest constant MASK is defined with a #define preprocessor directive.

Vedere ancheSee Also

Operatori di assegnazione CC Assignment Operators