Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Compound Assignment Operators ใน C++


รูปแบบ

Compound assignment operators มีรูปแบบ e1 op= e2 โดย:

  • e1 ต้องเป็น modifiable l-value ไม่ใช่ const
  • e2 ต้องเป็น arithmetic type หรือ pointer (ถ้า op เป็น + หรือ -)

พฤติกรรมเทียบเท่า e1 = e1 op e2 แต่ e1 ถูกประเมินเพียงครั้งเดียว

รายการ Compound Assignment Operators

Operatorคำอธิบาย
*=คูณ e1 ด้วย e2 เก็บผลใน e1
/=หาร e1 ด้วย e2 เก็บผลใน e1
%=modulus e1 ด้วย e2 เก็บผลใน e1
+=บวก e2 เข้า e1 เก็บผลใน e1
-=ลบ e2 จาก e1 เก็บผลใน e1
<<=Shift left e1 ด้วย e2 bits เก็บผลใน e1
>>=Shift right e1 ด้วย e2 bits เก็บผลใน e1
&=Bitwise AND e1 และ e2 เก็บผลใน e1
^=Bitwise XOR e1 และ e2 เก็บผลใน e1
|=Bitwise OR e1 และ e2 เก็บผลใน e1

ตัวอย่าง

#include <iostream>
using namespace std;

int main() {
    int a = 3, b = 2;
    a += b; cout << a << endl;  // 5
    a -= b; cout << a << endl;  // 3
    a *= b; cout << a << endl;  // 6
    a /= b; cout << a << endl;  // 3
    return 0;
}

ผลลัพธ์

5
3
6
3

ข้อจำกัด

  • Compound assignment กับ enumerated type → error
  • Left operand เป็น pointer → right ต้องเป็น pointer หรือ constant 0
  • Left operand เป็น integral → right ห้ามเป็น pointer