ตัวดำเนินการ Operators C++
ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับตัวดำเนินการประเภทต่างๆ ใน C++ โดยใช้ตัวอย่าง ในการเขียนโปรแกรม ตัวดำเนินการคือสัญลักษณ์ที่ทำงานบนค่าหรือตัวแปร
ตัวดำเนินการคือสัญลักษณ์ที่ดำเนินการกับตัวแปรและค่าต่างๆ ตัวอย่างเช่น + เป็นตัวดำเนินการที่ใช้สำหรับการบวก ในขณะที่ – เป็นตัวดำเนินการที่ใช้สำหรับการลบ
ตัวดำเนินการในภาษา C++ สามารถจำแนกได้เป็น 6 ประเภท:
- Arithmetic Operators
- Assignment Operators
- Relational Operators
- Logical Operators
- Bitwise Operators
- Other Operators
1. ตัวดำเนินการเลขคณิต C++ (Arithmetic Operators)
ตัวดำเนินการเลขคณิตใช้เพื่อดำเนินการคำนวณกับตัวแปรและข้อมูล ตัวอย่างเช่น,
a + b;
ในที่นี้โอเปอเรเตอร์ + ถูกใช้เพื่อรวมค่า 2 ตัวแปร คือ a และ b ในทำนองเดียวกัน มีตัวดำเนินการเลขคณิตอื่นๆ มากมายใน C++
Operator | Operation |
---|---|
+ | บวก (Addition) |
- | ลบ (Subtraction) |
* | คูณ (Multiplication) |
/ | หาร (Division) |
% | หารเอาผลลัพธ์เฉพาะเศษ (Modulus) |
ตัวอย่างที่ 1: ตัวดำเนินการเลขคณิต (Arithmetic Operators)
#include <iostream>
using namespace std;
int main() {
int a, b;
a = 7;
b = 2;
// printing the sum of a and b
cout << "a + b = " << (a + b) << endl;
// printing the difference of a and b
cout << "a - b = " << (a - b) << endl;
// printing the product of a and b
cout << "a * b = " << (a * b) << endl;
// printing the division of a by b
cout << "a / b = " << (a / b) << endl;
// printing the modulo of a by b
cout << "a % b = " << (a % b) << endl;
return 0;
}
เอาท์พุต

ที่นี่ตัวดำเนินการ +, – และ * คำนวณการบวก การลบ และการคูณตามลำดับที่เราคาดไว้
/ การหาร (Division Operator)
สังเกตการทำงาน (a / b) ในโปรแกรมของเรา ตัวดำเนินการ / (division operator)
ดังที่เราเห็นจากตัวอย่างข้างต้น หากจำนวนเต็มหารด้วยจำนวนเต็มอื่น เราจะได้ผลหาร อย่างไรก็ตาม หากตัวหารหรือเศษเป็นจำนวนทศนิยม เราก็จะได้ผลลัพธ์เป็นทศนิยม
In C++,
7/2 is 3
7.0 / 2 is 3.5
7 / 2.0 is 3.5
7.0 / 2.0 is 3.5
% การหารเอาเศษ (Modulo Operator)
ตัวดำเนินการโมดูลัส % ใช้หารตัวเลข แต่เอาเฉพาะเศษไว้ เช่น
7 % 2 = 3 เศษ 1 จะเก็บเฉพาะเศษไว้ นั่นคือได้ผลลัพธ์ เป็น 1
หมายเหตุ: ตัวดำเนินการโมดูลัส % สามารถใช้ได้กับเลขจำนวนเต็มเท่านั้น
ตัวดำเนินการเพิ่มและลด (Increment and Decrement Operators)
C++ ยังจัดเตรียมตัวดำเนินการเพิ่ม ++ เครื่องหมาย บวก 2 ครั้ง และ — เครื่องหมาย ลบ 2 ครั้ง
++ การเพิ่มค่าครั้งละ 1
— การลดค่าลงครั้งละ 1
ตัวอย่างเช่น,
int num = 5;
// ตัวดำเนินการที่เพิ่มขึ้น
++num; // 6
ที่นี่ โค้ด ++num; จะเพิ่มค่าของ num ด้วย 1 จาก 5 จึงเป็น 6
ตัวอย่างที่ 2: ตัวดำเนินการเพิ่มและลดค่า
// Working of increment and decrement operators
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 100, result_a, result_b;
// incrementing a by 1 and storing the result in result_a
result_a = ++a;
cout << "result_a = " << result_a << endl;
// decrementing b by 1 and storing the result in result_b
result_b = --b;
cout << "result_b = " << result_b << endl;
return 0;
}
เอาท์พุต

ในโปรแกรมข้างต้นเราได้ใช้ ตัวดำเนินการ ++ และ — เป็นคำนำหน้า (++a และ –b) ค่า a จาก 10 จึงเป็น 11 และ ค่า b จาก 100 จึงเหลือ 99
2. ตัวดำเนินการกำหนดค่า C++ (Assignment Operators)
ใน C ++ ตัวดำเนินการ Assignment ใช้เพื่อกำหนดค่าให้กับตัวแปร ตัวอย่างเช่น,
// assign 5 to a
a = 5;
ที่นี่เราได้กำหนดค่าของตัวแปร a เป็น 5
โอเปอเรเตอร์ | ตัวอย่าง | เทียบเท่ากับ |
---|---|---|
= | a = b; | a = b; |
+= | a += b; | a = a + b; |
-= | a -= b; | a = a - b; |
*= | a *= b; | a = a * b; |
/= | a /= b; | a = a / b; |
%= | a %= b; | a = a % b; |
ตัวอย่างที่ 3: ตัวดำเนินการกำหนดค่า
#include <iostream>
using namespace std;
int main() {
int a, b;
// 2 is assigned to a
a = 2;
// 7 is assigned to b
b = 7;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "\nAfter a += b;" << endl;
// assigning the sum of a and b to a
a += b; // a = a +b
cout << "a = " << a << endl;
return 0;
}
เอาท์พุต

3. ตัวดำเนินการแบบสัมพันธ์ C++ (Relational Operators)
ใช้ตัวดำเนินการเชิงสัมพันธ์ เพื่อตรวจสอบความสัมพันธ์ระหว่างตัวถูกดำเนินการ 2 ตัว ตัวอย่างเช่น,
// ตรวจสอบว่า a มากกว่า b หรือไม่?
a > b;
นี่ > คือตัวดำเนินการเชิงสัมพันธ์ มันตรวจสอบว่า a มีค่ามากกว่า b หรือไม่.
ถ้าความสัมพันธ์เป็นจริงก็จะส่งกลับเป็น 1 ในขณะที่ถ้าความสัมพันธ์เป็นเท็จก็จะส่งกลับเป็น 0
ตัวดำเนินการ | ความหมาย | ตัวอย่าง |
---|---|---|
== | เท่ากับ | 3 == 5 เป็นเท็จ |
!= | ไม่เท่ากับ | 3 != 5 เป็นจริง |
> | มากกว่า | 3 > 5 เป็นเท็จ |
< | น้อยกว่า | 3 < 5 เป็นจริง |
>= | มากกว่าหรือเท่ากับ | 3 >= 5 เป็นเท็จ |
<= | น้อยกว่าหรือเท่ากับ | 3 <= 5 เป็นจริง |
#include <iostream>
using namespace std;
int main() {
int a, b;
a = 3;
b = 5;
bool result;
result = (a == b); // false
cout << "3 == 5 is " << result << endl;
result = (a != b); // true
cout << "3 != 5 is " << result << endl;
result = a > b; // false
cout << "3 > 5 is " << result << endl;
result = a < b; // true
cout << "3 < 5 is " << result << endl;
result = a >= b; // false
cout << "3 >= 5 is " << result << endl;
result = a <= b; // true
cout << "3 <= 5 is " << result << endl;
return 0;
}
เอาท์พุต

หมายเหตุ : ตัวดำเนินการเชิงสัมพันธ์ใช้ในการตัดสินใจและวนซ้ำ
4. ตัวดำเนินการตรรกะ C ++ (Logical Operators)
นิพจน์ (Expression) คือ กลุ่มของข้อมูลซึ่งอาจจะอยู่ในรูปของค่าคงที่หรือตัวแปรมาดำเนินการโดยใช้เครื่องหมายต่าง ๆ ตัวดำเนินการทางตรรกะที่ใช้ในการตรวจสอบว่าการแสดงออกเป็นจริงหรือเท็จ หากการแสดงออกเป็นจริงก็จะส่งกลับเป็น 1 (true) ในขณะที่ถ้าการแสดงออกเป็นเท็จก็จะส่งกลับเป็น 0 (false)
ตัวดำเนินการ | ตัวอย่าง | ความหมาย |
---|---|---|
&& | นิพจน์1 && นิพจน์2 | Logical AND. ถ้านิพจน์ทั้งสองจริง ก็จะให้ค่าความจริงเป็น จริง |
|| | นิพจน์1 || นิพจน์2 | Logical OR. ถ้ามีนิพจน์ตัวใดตัวหนึ่งจริง ก็จะให้ค่าความจริงเป็น จริง |
! | ! นิพจน์ | Logical NOT. เป็นการสลับค่าทางตรรกะของนิพจน์ จากจริงเป็นเท็จหรือเท็จเป็นจริง |
ใน C ++ ตัวดำเนินการเชิงตรรกะมักใช้ในการตัดสินใจ เพื่อให้เข้าใจถึงตัวดำเนินการเชิงตรรกะเพิ่มเติม มาดูตัวอย่างต่อไปนี้
Suppose,
a = 5
b = 8
Then,
(a > 3) && (b > 5) evaluates to true
(a > 3) && (b < 5) evaluates to false
(a > 3) || (b > 5) evaluates to true
(a > 3) || (b < 5) evaluates to true
(a < 3) || (b < 5) evaluates to false
!(a < 3) evaluates to true
!(a > 3) evaluates to false
ตัวอย่างที่ 5: ตัวดำเนินการเชิงตรรกะ
#include <iostream>
using namespace std;
int main() {
bool result;
result = (3 != 5) && (3 < 5); // true
cout << "(3 != 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 < 5); // false
cout << "(3 == 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 > 5); // false
cout << "(3 == 5) && (3 > 5) is " << result << endl;
result = (3 != 5) || (3 < 5); // true
cout << "(3 != 5) || (3 < 5) is " << result << endl;
result = (3 != 5) || (3 > 5); // true
cout << "(3 != 5) || (3 > 5) is " << result << endl;
result = (3 == 5) || (3 > 5); // false
cout << "(3 == 5) || (3 > 5) is " << result << endl;
result = !(5 == 2); // true
cout << "!(5 == 2) is " << result << endl;
result = !(5 == 5); // false
cout << "!(5 == 5) is " << result << endl;
return 0;
}
เอาท์พุต

คำอธิบายของโปรแกรมตัวดำเนินการเชิงตรรกะ
- (3 != 5) && (3 < 5) ประเมินเป็น 1 เพราะทั้งตัวถูกดำเนินการ (3 != 5) และ (3 < 5) เป็น1 (จริง)
- (3 == 5) && (3 < 5) ประเมินเป็น 0 เนื่องจากตัวถูกดำเนินการ (3 == 5) เป็น 0 (เท็จ)
- (3 == 5) && (3 > 5) ประเมินเป็น 0 เพราะทั้งตัวถูกดำเนินการ (3 == 5) และ (3 > 5) เป็น 0 (เท็จ)
- (3 != 5) || (3 < 5) ประเมินเป็น 1 เพราะทั้งตัวถูกดำเนินการ (3 != 5) และ (3 < 5) เป็น1 (จริง)
- (3 != 5) || (3 > 5) ประเมินเป็น 1 เนื่องจากตัวถูกดำเนินการ (3 != 5) เป็น1 (จริง)
- (3 == 5) || (3 > 5) ประเมินเป็น 0 เพราะทั้งตัวถูกดำเนินการ (3 == 5) และ (3 > 5) เป็น 0 (เท็จ)
- !(5 == 2) ประเมินเป็น 1 เนื่องจากตัวถูกดำเนินการ (5 == 2) เป็น 0 (เท็จ)
- !(5 == 5) ประเมินเป็น 0 เนื่องจากตัวถูกดำเนินการ (5 == 5) คือ 1 (จริง)
5. ตัวดำเนินการระดับบิต (Bitwise Operators)
ใน C ++ ตัวดำเนินการระดับบิตถูกใช้เพื่อดำเนินการกับแต่ละบิต พวกเขาเท่านั้นที่สามารถใช้ควบคู่กับชนิดข้อมูล char และ int
Operator | Description |
---|---|
& | Binary AND |
| | Binary OR |
^ | Binary XOR |
~ | Binary One’s Complement |
<< | Binary Shift Left |
>> | Binary Shift Right |
6. ตัวดำเนินการ C++ อื่นๆ (Other Operators)
ต่อไปนี้คือรายการตัวดำเนินการทั่วไปอื่นๆ ที่มีอยู่ใน C++ เราจะเรียนรู้เกี่ยวกับพวกเขาในบทช่วยสอนในภายหลัง
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
sizeof | ส่งกลับขนาดของชนิดข้อมูล | sizeof(int); // 4 |
?: | ส่งคืนค่าตามเงื่อนไข | string result = (5 > 0) ? "even" : "odd"; // "even" |
& | หมายถึงที่อยู่หน่วยความจำของตัวถูกดำเนินการ | # // address of num |
. | เข้าถึงสมาชิกของตัวแปร struct หรือคลาสอ็อบเจกต์ | s1.marks = 92; |
-> | ใช้กับพอยน์เตอร์เพื่อเข้าถึงคลาสหรือตัวแปรโครงสร้าง | ptr->marks = 92; |
<< | พิมพ์ค่าเอาต์พุต | cout << 5; |
>> | รับค่าอินพุต | cin >> num; |