มีตัวดำเนินการหลายประเภทใน C++ สิ่งเหล่านี้สามารถจัดประเภทกว้างๆ ได้ดังนี้:เลขคณิต เชิงสัมพันธ์ ตรรกะ ระดับบิต การมอบหมาย และตัวดำเนินการอื่นๆ
ตัวดำเนินการเลขคณิต
สมมติว่าตัวแปร A มีค่า 10 และตัวแปร B มีค่าเท่ากับ 20 จากนั้น -
ตัวดำเนินการ | คำอธิบาย |
+ | เพิ่มตัวถูกดำเนินการสองตัว A + B จะให้30 |
- | ลบตัวถูกดำเนินการที่สองออกจากตัวแรก A - B จะให้ -10 |
* | คูณตัวถูกดำเนินการทั้งสอง A * B จะให้ 200 |
/ | แบ่งตัวเศษด้วยตัวลบ B / A จะให้2 |
% | ตัวดำเนินการโมดูลัสและส่วนที่เหลือหลังการหารจำนวนเต็ม B % A จะให้ 0 |
++ | ตัวดำเนินการเพิ่ม เพิ่มค่าจำนวนเต็มทีละหนึ่ง A++ จะให้ 11 |
-- | ตัวดำเนินการลด ลดค่าจำนวนเต็มลงหนึ่งค่า A-- จะให้ 9 |
ตัวดำเนินการเชิงสัมพันธ์
สมมติว่าตัวแปร A มีค่า 10 และตัวแปร B มีค่าเท่ากับ 20 จากนั้น -
ตัวดำเนินการ | คำอธิบาย |
== | ตรวจสอบว่าค่าของตัวถูกดำเนินการสองตัวเท่ากันหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A ==B) ไม่เป็นความจริง |
!= | ตรวจสอบว่าค่าของตัวถูกดำเนินการสองตัวเท่ากันหรือไม่ ถ้าค่าไม่เท่ากัน เงื่อนไขจะกลายเป็นจริง (A !=B) เป็นจริง |
> | ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายมากกว่าค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A> B) ไม่เป็นความจริง |
< | ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายน้อยกว่าค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A |
>= | ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายมากกว่าหรือเท่ากับค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A>=B) ไม่เป็นความจริง |
<= | ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายน้อยกว่าหรือเท่ากับค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A <=B) เป็นจริง |
ตัวดำเนินการเชิงตรรกะ
สมมติว่าตัวแปร A มีค่า 1 และตัวแปร B มีค่า 0 แล้ว -
ตัวดำเนินการ | คำอธิบาย |
&& | เรียกว่าตัวดำเนินการตรรกะ AND ถ้าตัวถูกดำเนินการทั้งสองไม่ใช่ศูนย์ เงื่อนไขจะกลายเป็นจริง (A &&B) จะเป็นเท็จ |
|| | เรียกว่าตรรกะหรือตัวดำเนินการ ถ้าตัวถูกดำเนินการสองตัวใดที่ไม่ใช่ศูนย์ เงื่อนไขจะกลายเป็นจริง (A || B) เป็นจริง |
! | เรียกว่า Logical NOT Operator ใช้เพื่อย้อนกลับสถานะตรรกะของตัวถูกดำเนินการ หากเงื่อนไขเป็นจริง ตัวดำเนินการ Logical NOT จะทำให้เท็จ!(A &&B) เป็นจริง |
ตัวดำเนินการระดับบิต
ตัวดำเนินการ Bitwise ทำงานบนบิตและดำเนินการแบบทีละบิต ตารางความจริงของ &, | และ ^ มีดังต่อไปนี้
pqp & qp | qp ^ q 00000 01011 11110 10011
สมมติว่า A =60; และ B =13; ตอนนี้ในรูปแบบไบนารีจะเป็นดังนี้ -
A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011
ตัวดำเนินการ | คำอธิบาย |
& | ไบนารีและตัวดำเนินการคัดลอกบิตไปยังผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการทั้งสอง (A &B) จะให้ 12 ซึ่งเท่ากับ 0000 1100 |
| | Binary OR Operator คัดลอกเล็กน้อยหากมีอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่ง (A | B) จะให้ 61 ซึ่งก็คือ 0011 1101 |
^ | Binary XOR Operator จะคัดลอกบิตหากตั้งค่าไว้ในตัวถูกดำเนินการเดียว แต่ไม่ใช่ทั้งสองอย่าง (A ^ B) จะให้ 49 ซึ่งเท่ากับ 0011 0001 |
~ | Binary Ones Complement Operator เป็นเอกพจน์และมีผลของการ 'พลิก' บิต (~A ) จะให้ -61 ซึ่งเป็น 1100 0011 ในรูปแบบเสริมของ 2 เนื่องจากเลขฐานสองที่มีลายเซ็น . |
<< | ตัวดำเนินการ Shift ซ้ายแบบไบนารี ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา A <<2 จะให้ 240 ซึ่งเท่ากับ 1111 0000 |
>> | ตัวดำเนินการ Shift ขวาแบบไบนารี ค่าตัวถูกดำเนินการทางซ้ายจะเลื่อนไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา A>> 2 จะให้ 15 ซึ่งเท่ากับ 0000 1111 |
ตัวดำเนินการมอบหมาย
ตัวดำเนินการ | คำอธิบาย |
= | ตัวดำเนินการกำหนดอย่างง่าย กำหนดค่าจากตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย C =A + B จะกำหนดค่าของ A + B ลงใน C |
+= | ตัวดำเนินการเพิ่ม AND จะเพิ่มตัวถูกดำเนินการทางขวาให้กับตัวถูกดำเนินการทางซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C +=A เท่ากับ C =C + A |
-= | ตัวดำเนินการลบ AND ลบตัวถูกดำเนินการทางขวาออกจากตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C -=A เทียบเท่ากับ C =C - A |
*= | ตัวดำเนินการคูณและกำหนด มันคูณตัวถูกดำเนินการทางขวากับตัวถูกดำเนินการทางซ้าย และกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C *=A เทียบเท่ากับ C =C * A |
/= | ตัวดำเนินการแบ่ง AND แบ่งตัวถูกดำเนินการทางซ้ายด้วยตัวถูกดำเนินการทางขวา และกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C /=A เท่ากับ C =C / A |
%= | ตัวดำเนินการโมดูลัสและการกำหนด ใช้โมดูลัสโดยใช้ตัวถูกดำเนินการสองตัวและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C %=A เทียบเท่ากับ C =C % A |
<<= | ตัวดำเนินการกะด้านซ้ายและการกำหนด C <<=2 เหมือนกับ C =C <<2 |
>>= | ตัวดำเนินการกะและกำหนดทางขวา C>>=2 เหมือนกับ C =C>> 2 |
&= | ตัวดำเนินการกำหนดระดับบิตและ C &=2 เหมือนกับ C =C &2 |
^= | Bitwise Exclusive OR และตัวดำเนินการการกำหนด C ^=2 เหมือนกับ C =C ^ 2 |
|= | ค่า OR ที่รวมระดับบิตและตัวดำเนินการกำหนด C |=2 เหมือนกับ C =C | 2 |
ตัวดำเนินการอื่นๆ
Sr.No | ตัวดำเนินการ |
1 | ขนาดของตัวดำเนินการ ส่งกลับขนาดของตัวแปร ตัวอย่างเช่น sizeof(a) โดยที่ 'a' เป็นจำนวนเต็ม และจะคืนค่า 4 |
2 | ตัวดำเนินการแบบมีเงื่อนไข (?:) ถ้า Condition เป็นจริง มันจะคืนค่า X มิฉะนั้นจะคืนค่า Y |
3 | ตัวดำเนินการจุลภาค ทำให้มีการดำเนินการตามลำดับ ค่าของนิพจน์จุลภาคทั้งหมดคือค่าของนิพจน์สุดท้ายของรายการที่คั่นด้วยจุลภาค |
4 | (dot) and → (ลูกศร) ตัวดำเนินการสมาชิกใช้เพื่ออ้างอิงสมาชิกแต่ละรายของชั้นเรียน โครงสร้าง และสหภาพแรงงาน |
5 | () - ตัวดำเนินการแคสต์จะแปลงข้อมูลประเภทหนึ่งเป็นอีกประเภทหนึ่ง ตัวอย่างเช่น int(2.2000) จะคืนค่า 2 |
6 | ตัวดำเนินการตัวชี้ &ส่งกลับที่อยู่ของตัวแปร ตัวอย่างเช่น &a; จะให้ที่อยู่ที่แท้จริงของตัวแปร |
7 | ตัวดำเนินการตัวชี้ * เป็นตัวชี้ไปยังตัวแปร ตัวอย่างเช่น *var; จะชี้ไปที่ตัวแปร var |