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

ตัวดำเนินการมอบหมายใน C++


ตัวดำเนินการมอบหมายจะเก็บค่าในวัตถุที่กำหนดโดยตัวถูกดำเนินการทางซ้าย การดำเนินการมอบหมายมีสองประเภท:การกำหนดค่าอย่างง่าย ซึ่งค่าของตัวถูกดำเนินการที่สองถูกเก็บไว้ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก และการกำหนดค่าแบบผสม ซึ่งดำเนินการทางคณิตศาสตร์ กะ หรือระดับบิตก่อนจัดเก็บ ผลลัพธ์

ตัวอย่าง

ตัวอย่างการมอบหมายงานอย่างง่าย -

#include<iostream>
using namespace std;
int main() {
   int i;
   i = 10;    // Simple Assignment
   cout << i;
   return 0;
}

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

10

ตัวดำเนินการกำหนดแบบผสมถูกระบุในรูปแบบ e1 op=e2 โดยที่ e1 เป็นค่า l ที่ปรับเปลี่ยนได้ ไม่ใช่ประเภท const และ e2 เป็นหนึ่งในรายการต่อไปนี้ -

  • ประเภทเลขคณิต
  • ตัวชี้ ถ้า op คือ + หรือ –

รูปแบบ e1 op=e2 ทำงานเป็น e1 =e1 op e2 แต่ e1 จะได้รับการประเมินเพียงครั้งเดียว
ต่อไปนี้เป็นตัวดำเนินการกำหนดแบบผสมใน C++ -

ตัวดำเนินการ
คำอธิบาย
*=
คูณค่าของตัวถูกดำเนินการแรกด้วยค่าของตัวถูกดำเนินการที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
/=
หารค่าของตัวถูกดำเนินการแรกด้วยค่าของตัวถูกดำเนินการที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
%=
นำโมดูลัสของตัวถูกดำเนินการแรกที่ระบุโดยค่าของตัวถูกดำเนินการที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
+=
เพิ่มค่าของตัวถูกดำเนินการที่สองให้กับค่าของตัวถูกดำเนินการแรก เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
–=
ลบค่าของตัวถูกดำเนินการที่สองออกจากค่าของตัวถูกดำเนินการแรก เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
<<=
เปลี่ยนค่าของตัวถูกดำเนินการแรกเหลือจำนวนบิตที่ระบุโดยค่าของตัวถูกดำเนินการที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
>>=
เลื่อนค่าของตัวถูกดำเนินการแรกไปทางขวาตามจำนวนบิตที่ระบุโดยค่าของตัวถูกดำเนินการที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
&=
รับค่าระดับบิต AND ของตัวถูกดำเนินการที่หนึ่งและที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
^=
รับค่า OR พิเศษระดับบิตของตัวถูกดำเนินการที่หนึ่งและที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก
|=รับค่า OR รวมระดับบิตของตัวถูกดำเนินการที่หนึ่งและที่สอง เก็บผลลัพธ์ในวัตถุที่ระบุโดยตัวถูกดำเนินการแรก

ตัวอย่าง

มาดูตัวอย่างการใช้ตัวดำเนินการเหล่านี้กัน −

#include<iostream>
using namespace std;
int main() {
   int a = 3, b = 2;
   a += b;
   cout << a << endl;
   a -= b;
   cout << a << endl;
   a *= b;
   cout << a << endl;
   a /= b;
   cout << a << endl;
   return 0;
}

สิ่งนี้จะให้ผลลัพธ์ -

5
3
6
3

โปรดทราบว่าการกำหนดแบบผสมให้กับชนิดที่แจกแจงจะสร้างข้อความแสดงข้อผิดพลาด หากตัวถูกดำเนินการทางซ้ายเป็นประเภทตัวชี้ ตัวถูกดำเนินการทางขวาจะต้องเป็นประเภทตัวชี้หรือต้องเป็นนิพจน์คงที่ที่ประเมินเป็น 0 หากตัวถูกดำเนินการทางซ้ายเป็นประเภทปริพันธ์ ตัวถูกดำเนินการทางขวาจะต้องไม่ใช่ตัวชี้ ชนิด