Bagikan melalui


C Compound Assignment

Operator compount assignment menggabungkan operator single assignment dengan operator biner lain. Operator compound-assignment melakukan operasi yang ditentukan oleh operator tambahan, lalu menetapkan hasilnya ke operand kiri. Misalnya, ekspresi compound assignment seperti

ekspresi1 += ekspresi2

dapat dipahami sebagai

ekspresi1 = ekspresi1 + ekspresi2

Namun, ekspresi compound assignment tidak setara dengan versi yang diperluas karena ekspresi compound assignment mengevaluasi expression1 hanya sekali, sementara versi yang diperluas mengevaluasi expression1 dua kali: dalam operasi penambahan dan dalam operasi penugasan.

Operand operator compound assignment harus berjenis integral atau mengambang. Setiap operator compound assignment melakukan konversi yang dilakukan operator biner terkait dan membatasi jenis operand secara bersesuaian. Operator penugasan tambahan (+=) dan penugasan pengurangan (-=) juga dapat memiliki operand kiri jenis penunjuk, dalam hal ini operand sebelah kanan harus berjenis integral. Hasil dari operasi compound assignment memiliki nilai dan jenis operand kiri.

#define MASK 0xff00

n &= MASK;

Dalam contoh ini, operasi bitwise-inclusive-AND dilakukan pada n dan MASK, dan hasilnya ditetapkan ke n. Konstanta manifes MASK didefinisikan dengan arahan pra-prosesor #define .

Lihat juga

Operator Penugasan C