มีตัวดำเนินการหลายประเภทใน 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 |