ตัวดำเนินการ
ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการ (Operator) ในภาษา C++ ตัวดำเนินการถูกใช้เพื่อดำเนินการกับตัวแปรและค่าคงที่สำหรับการสร้าง Expression เพื่อทำงานโปรแกรม ในภาษา C++ มีตัวดำเนินการประเภทต่างๆ สำหรับการทำงานที่แตกต่างกันออกไป นี่เป็นตัวดำเนินการที่สำคัญที่คุณจะต้องรู้จักและจะได้เรียนในบทนี้
- Assignment operator
- Arithmetic operators
- Compound assignment operators
- Increment and decrement
- Comparison operators
- Logical operators
- Conditional ternary operator
- Bitwise operators
- Explicit type casting operator
- Operator precedence
Assignment operator
ตัวดำเนินการกำหนดค่านั้นแสดงโดยใช้เครื่องหมายเท่ากับ (=) มันถูกใช้เพื่อกำหนดค่าข้อมูลให้กับตัวแปรหรือค่าคงที่ในภาษา C++ ในการใช้งานตัวดำเนินการนั้นจะเป็นการนำค่าทางด้านขวาของตัวดำเนินการ กำหนดให้กับตัวแปรทางด้านซ้าย นี่เป็นตัวอย่างการใช้งาน
x = 10;
y = x;
a = b = c = 1;
ในตัวอย่าง เรามีตัวแปรสองตัวคือ x
และ y
เราได้กำหนดค่า 10
ให้กับตัวแปร x
และเรากำหนดค่าของ x
ให้กับตัวแปร y
ดังนั้นทั้งตัวแปร x
และ y
จะมีค่าเป็น 10
และในคำสั่งสุดท้ายเป็นการกำหนดค่าให้กับหลายตัวแปรแบบในบรรทัดเดียว ซึ่งทั้งตัวแปร a
b
และ c
นั้นต่างก็มีค่าเท่ากับ 1
Arithmetic operators ( +, -, *, /, % )
ตัวดำเนินการคณิตศาสตร์ ถูกใช้เพื่อดำเนินการเกี่ยวกับทางคณิตระหว่างตัวแปรและค่าคงที่ เช่น การบวก การลบ การคูณ และการหาร และนอกจากนี้ตัวดำเนินการในการเขียนโปรแกรมคอมพิวเตอร์นั้น ยังมีตัวดำเนินการสำหรับการหารเอาเศษ (Modulo)
ต่อไปนี้เป็นตารางแสดงตัวดำเนินการทางคณิตศาสตร์ในภาษา C++
Symbol | Name | Example |
---|---|---|
+ | Addition | c = a + b |
- | Subtraction | c = a - b |
* | Multiplication | c = a * b |
/ | Division | c = a / b |
% | Modulo | c = a % b |
ในตารางข้างบน เป็นสัญลักษณ์ ชื่อ และตัวอย่างการใช้งานของตัวดำเนินการ ต่อไปมาดูตัวอย่างของการใช้ตัวดำเนินการทางคณิตศาสตร์
#include <iostream>
using namespace std;
int main()
{
int a = 3;
int b = 2;
cout << "a + b = " << a + b << endl;
cout << "a - b = " << a - b << endl;
cout << "a * b = " << a * b << endl;
cout << "a / b = " << a / b << endl;
cout << "a % b = " << a % b << endl;
return 0;
}
ในตัวอย่าง เป็นการใช้งานตัวดำเนินการทางคณิตศาสตร์ประเภทต่างๆ เราได้ประกาศตัวแปร a
และ b
และกำหนดค่าให้กับตัวแปร ใน 4 คำสั่งแรกเป็นการกระทำทางคณิตศาสตร์พื้นฐานคือ การบวก การลบ การคูณ และการหาร ตามลำดับ แต่ในตัวดำเนินการสุดท้าย %
หรือการหารเอาเศษ ในตัวอย่าง 3 หาร 2 นั้นได้เศษ 1 ดังนั้นคำตอบจึงเป็น 1 และเมื่อโปรแกรมรัน มันจะให้ผลลัพธ์ดังต่อไปนี้
a + b = 5
a - b = 1
a * b = 6
a / b = 1
a % b = 1
Compound assignment (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
Compound assignment operators ถูกใช้เพื่อแก้ไขค่าปัจจุบันของตัวแปรโดยการใช้ตัวดำเนินการทางคณิตศาตร์และตัวดำเนินการกำหนดค่าในเวลาเดียวกัน การทำงานของตัวดำเนินนั้นจะทำงานโดยอ้างอิงกับค่าเดิมของตัวแปร เช่น การเพิ่มหรือลดค่าจากตัวแปรเดิม นอกจากนี้มันยังใช้สำหรับการเขียนแบบสั้นของตัวดำเนินการทางคณิตศาสตร์และตัวดำเนินการระดับบิต
ต่อไปนี้เป็นตารางของตัวดำเนินการกำหนดเพิ่มค่าในภาษา C++
Operator | Example | Equivalent to |
---|---|---|
+= | a += 2; | a = a + 2 |
-= | a -= 2; | a = a - 2 |
*= | a *= 2; | a = a * 2 |
/= | a /= 2; | a= a / 2 |
%= | a %= 2; | a = a % 2 |
>>= | a >>= 2; | a = a >> 2 |
<<= | a <<= 2 | a = a << 2 |
&= | a & = 2; | a = a & 2 |
^= | a ^= 2; | a= a ^ 2 |
|= | a |= 2; | a = a | 2 |
คุณจะเห็นว่าตัวดำเนินการ Compound assignment นั้นจะเป็นการรวมกันระหว่างตัวดำเนินการกำหนดค่าและตัวดำเนินการทางคณิตศาสตร์หรือตัวดำเนินการระดับบิต และมันสามารถใช้แทนตัวดำเนินการเหล่านั้นได้ในบางกรณีเพื่อทำให้การเขียนของคุณสั้นลง มาดูตัวอย่างการใช้งานในภาษา C++
#include <iostream>
using namespace std;
int main()
{
// Using compound assessment
// Building construction
int floor = 0;
cout << "Building construction" << endl;
floor += 4;
cout << "First day build 4 floors" << endl;
cout << floor << " floors has been constructed" << endl;
floor += 3;
cout << "Second day build 3 floors" << endl;
cout << floor << " floors has been constructed" << endl;
floor += 3;
cout << "Third day build 3 floors" << endl;
cout << floor << " floors has been constructed" << endl;
// No using compound assessment
// Fuel using of vehicle
float current_fuel = 100;
cout << "\nVehicle has 100% of fuel" << endl;
current_fuel = current_fuel - 17.2; // current_fuel -= 17.2;
cout << "Fuel left " << current_fuel << "%" << endl;
current_fuel = current_fuel - 20; // current_fuel -= 20;
cout << "Fuel left " << current_fuel << "%" << endl;
current_fuel = current_fuel + 35; // current_fuel += 35;
cout << "Fuel left " << current_fuel << "%" << endl;
current_fuel = current_fuel - 46.1; // current_fuel -= 46.1;
cout << "Fuel left " << current_fuel << "%" << endl;
return 0;
}
ในตัวอย่าง เป็นการใช้งานตัวดำเนินการ Compound assignment ในการเขียนโปรแกรมแสดงความคืบหน้าของการสร้างตึกและการใช้งานเชื้อเพลิงในถังของยานพาหนะ ในการสร้างตึกนั้นเรามีตัวแปร floor
สำหรับเก็บค่าว่าสร้างตึกไปได้กี่ชั้นแล้ว ในแต่ละวันที่สร้างเสร็จ เราจะทำการบวกจำนวนชั้นที่สร้างเสร็จเพิ่มขึ้นจากค่าเดิมด้วยตัวดำเนินการ +=
และในตัวอย่างของการเชื้อเพลงนั้น เป็นการแสดงให้เห็นว่าเราสามารถที่จะใช้ตัวดำเนินการ Compound assignment เพื่อทำให้คำสั่งสั้นลงได้ ซึ่งไม่มีผลต่างกันในการทำงาน
Building construction
First day build 4 floors
4 floors has been constructed
Second day build 3 floors
7 floors has been constructed
Third day build 3 floors
10 floors has been constructed
Vehicle has 100% of fuel
Fuel left 82.8%
Fuel left 62.8%
Fuel left 97.8%
Fuel left 51.7%
นี่เป็นผลลัพธ์การทำงานเมื่อรันโปรแกรม
Increment และ decrement (++, --)
ตัวดำเนินการ Increment และ Decrement operators ถูกใช้เพื่อเพิ่มหรือลดค่าของตัวแปรทีละ 1 ตัวดำเนินการดำเนินการกับตัวแปรโดยการเพิ่ม ++
หรือ --
หลังจากตัวแปร นี่เป็นตัวอย่าง
#include <iostream>
using namespace std;
int main()
{
int x = 1;
int y = 5;
x++;
++x;
y--;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
return 0;
}
โปรแกรมจะมีผลลัพธ์ตามนี้
x = 3
y = 4
ตัวดำเนินการนี้เป็นรูปย่อของ x = x + 1
เหมือนที่คุณได้เห็นในโปรแกรม อย่างไรก็ตามมันมีข้อแตกต่างระหว่าง Prefix และ Postfix increments โดย x++
จะต้องเสร็จสิ้นคำสั่งปัจจุบันก่อนที่จะเพิ่มค่า 1 ไปยังตัวแปร x
แต่ ++x
จะเพิ่มค่า 1 ไปยังตัวแปร x
ก่อนที่คำสั่งจะทำงาน
นอกจากนี้ การใช้งานตัวดำเนินการลบและเพิ่มที่ค่าเราใช้บ่อยๆ ในการเขียนโปรแกรมคือการใช้กับคำสั่งวนซ้ำ เพื่อเป็นตัวควบคุมการทำงานของลูป ต่อไปเป็นตัวอย่างของโปรแกรมแสดงตัวเลขด้วยคำสั่ง while
loop
#include <iostream>
using namespace std;
int main()
{
int i = 1;
int j = 1;
while (i <= 10)
{
cout << "i = " << i++ << ", j = " << ++j << endl;
}
return 0;
}
ในตัวอย่าง เป็นการใช้คำสั่ง while
loop วนเป็นจำนวน 10 รอบสำหรับการแสดงตัวเลข เรามีตัวแปร i
และ j
ซึ่งถูกกำหนดค่าเป็น 1
ในตอนเริ่มต้น ในคำสังการแสดงผล cout
คุณจะเห็นว่าในตัวแปร i
เราแสดงผลโดยรูปแบบ Postfix i++
และในตัวแปร j
เราแสดงผลโดยรูปแบบ Prefix ++j
ทำให้ค่าของ j
นั้นถูกเพิ่มขึ้นก่อนที่จะแสดงผล
i = 1, j = 2
i = 2, j = 3
i = 3, j = 4
i = 4, j = 5
i = 5, j = 6
i = 6, j = 7
i = 7, j = 8
i = 8, j = 9
i = 9, j = 10
i = 10, j = 11
นี่เป็นผลลัพธ์การทำงานของโปรแกรม ซึ่งคุณได้เห็นความแตกต่างอย่างชัดเจนระหว่างการใช้งานตัวเพิ่มลดค่าแบบ Prefix และ Posfix
Relational และ comparison operators ( ==, !=, >, <, >=, <= )
ตัวดำเนินการเปรียบเทียบถูกใช้ในการดำเนินการเปรียบเทียบระหว่างตัวแปร ผลลัพธ์ของตัวดำเนินการเหล่านี้จะมีแค่ true
และ false
อีกนัยหนึ่ง มันเป็นการเขียนโปรแกรมแบบมีเงื่อนไข ที่ใช้ในคำสั่งที่มีการเปรียบเทียบ เช่น if
, for
, while
และ do while
เป็นต้น
Relational and comparison operators table
Operater | Example | Result |
---|---|---|
== | a == b | true if a equal to b, otherwise false |
!= | a != b | true if a not equal to b, otherwise false |
< | a < b | true if a less than b, otherwise false |
> | a > b | true if a greater than b, otherwise false |
<= | a <= b | true if a less than or equal to b, otherwise false |
>= | a >= b | true if a greater than or equal to b, otherwise false |
มาดูตัวอย่างในหารใช้งานสำหรับการเปรียบเทียบค่า
int n = 5;
if (n == 5)
{
cout << "n equal to 5";
}
นี่เรียกว่าคำสั่งเปรียบเทียบเงื่อนไข ในตัวอย่าง เราใช้ตัวดำเนินการ ==
เพื่อตรวจสอบว่าตัวแปร n
เท่ากับ 5
หรือไม่ ถ้ามันเท่ากับ 5
เราจะแสดงผล "n equal to 5" ออกทางหน้าจอ
เพื่อให้คุณเข้าใจถึงวิธีการใช้งานมากขึ้น ต่อไปมาตัวอย่างเพิ่มเติมสำหรับการใช้งานตัวดำเนินการเปรียบ โดยเราจะเขียนโปรแกรมสำหรับบอกว่าสภาพอากาศเป็นอย่างไร โดยคำนวณจากอุณหภูมิที่รับเข้ามา
#include <iostream>
using namespace std;
int main()
{
int degree_f, degree_c;
string feeling;
cout << "Enter temperature (F): ";
cin >> degree_f;
degree_c = (degree_f - 32) * (5 / 9.0f);
cout << degree_f << " 'F = " << degree_c << " 'C" << endl;
if (degree_f < 30)
{
feeling = "freezing";
}
else if (degree_f < 50)
{
feeling = "cold";
}
else if (degree_f < 70)
{
feeling = "cool";
}
else if (degree_f < 90)
{
feeling = "warm";
}
else
{
feeling = "hot";
}
cout << "Today the weather is "<< feeling << ".";
return 0;
}
ในตัวอย่าง เป็นโปรแกรมบอกสภาพอากาศโดยคำนวณจากอุณหภูมิ โปรแกรมของเราถามให้ผู้ใช้กรอกอุณหภูมิในองศาฟาเรนไฮต์ และเราทำการคำนวณอุณภูมิสำหรับองศาเซลเซียสด้วย หลังจากนั้นเราใช้ตัวดำเนินการสำหรับเปรียบเทียบค่าของอุณหภูมิในช่วงต่างๆ ว่าอากาศนั้นเป็นแบบไหน
Enter temperature (F): 57
57 'F = 13 'C
Today the weather is cool.
นี่เป็นผลลัพธ์การทำงานของโปรแกรมเมื่อเรากรอกอุณหภูมิเป็น 57 และโปรแกรมแปลงเป็นองศาเซลเซียสเท่ากับ 13 และบอกว่าอากาศเย็นสบายดี
Logical operators ( !, &&, || )
ตัวดำเนินการตรรกะ ใช้เพื่อประเมิน Expression ของตัวแปรซึ่ง Expression สามารถประกอบไปด้วยตัวแปรเดียวหรือมากกว่า นี่เป็นตารางของตัวดำเนินการตรรกะ
Symbol | Name | Example |
---|---|---|
! | Not | ! (n==1) |
&& | And | a == 1 && b == 1 |
|| | Or | a == 1 || b == 1 |
ตัวดำเนินการตรรกะมักจะใช้เพื่อเปรียบเทียบและสร้างเงื่อนไข ผลลัพธ์สุดท้ายนั้นจะเป็น true
หรือ false
เท่านั้น มาดูตัวอย่าง
bool isRain = true;
if (!isRain)
{
cout << "I will go to beach" ;
}
เรามีตัวแปร isRain
ซึ่งเป็นตัวแปรที่ใช้บ่งบอกว่าฝนตกหรือไม่ ในคำสั่ง if (!isRain)
มีความหมายคือ "if it not rain" เราจะแสดงผลข้อความ "I will go to beach" ออกทางจอภาพ
char c = 'a';
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
{
cout << "c is a vowel" ;
}
ในตัวอย่าง เรามีตัวแปร c
ซึ่งสามารถเก็บค่าของตัวอักษรภาษาอังกฤษทุกตัวได้ และเราใช้ตัวดำเนินการ ||
(or) เพื่อเช็คว่าถ้า c
เป็นสระใดๆ เราจะแสดงผลออกทางจอภาพว่า "c is vowel" อย่างไรก็ตามคุณสามารถลองใช้ตัวดำเนินการ &&
(and) ได้ด้วยตัวเอง
เพื่อให้คุณเข้าใจในการใช้งานตัวดำเนินการตรรกศาสตร์มากขึ้น มาดูตัวอย่างการใช้งานเพิ่มเติม เราได้พัฒนาระบบรักษาความปลอดภัยในการเข้าสู่ระบบ โดยผู้ใช้ต้องกรอกชื่อและรหัสผ่านสี่ตัวสำหรับเข้าใช้งานในระบบ นี่เป็นโค้ดของโปรแกรม
#include <iostream>
using namespace std;
int main()
{
string name;
int passcode;
cout << "Enter your name >> ";
cin >> name;
cout << "Four digit access code >> ";
cin >> passcode;
if ((name == "mateo" || name == "MATEO") && passcode == 3578)
{
cout << "Accessing granted." << endl;
cout << "Hello Mateo!" << endl;
}
else
{
cout << "Accessing denied." << endl;
}
return 0;
}
ในตัวอย่าง เป็นโปรแกรมสำหรับตรวจสอบการเข้าใช้งานระบบ ในการที่จะเข้าระบบผู้ใช้ต้องกรอกชื่อและรหัสผ่านให้ถูกต้อง และเราประกาศตัวแปร name
สำหรับชื่อ passcode
สำหรับรหัสผ่าน
if ((name == "mateo" || name == "MATEO") && passcode == 3578)
{
...
ระบบของเรานั้นจะอนุญาติสำหรับผู้ใช้ที่มีชื่อว่า "mateo"
อย่างไรก็ตาม ผู้ใช้สามารถพิมพ์ชื่อเป็นตัวพิมพ์เล็กทั้งหมดหรือตัวพิมพ์ใหญ่ทั้งหมดเท่านั้นโดยใช้ตัวดำเนินการ ||
(or) เชื่อมเงื่อนไข และรหัสผ่านต้องเป็น 3578
โดยใช้ตัวดำเนินการ &&
(and) เพื่อเชื่อมเงื่อนไข
Enter your name >> mateo
Four digit access code >> 3578
Accessing granted.
Hello Mateo!
นี่เป็นผลลัพธ์การทำงานของโปรแกรม เมื่อเรากรอกชื่อและรหัสผ่านถูกต้อง ทำให้สามารถเข้าใช้งานระบบได้
Conditional ternary operator (?)
Conditional ternary operator ถูกใช้เพื่อประเมิน Expression โดยการใช้ตัวดำเนินการที่คุณได้เรียนไปก่อนหน้านี้แล้ว มันจะให้ผลลัพธ์เป็น true
ถ้าผลลัพธ์ของ Expression เป็นจริงและจะใช้ค่า false
ถ้าไม่ โดยมีรูปแบบการใช้งานดังนี้
condition ? value1: value2
Conditional ternary operator นั้นง่ายต่อการใช้ มันเป็นรูปแบบย่อของการใช้คำสั่ง if เช่น
if (n%2 == 0)
{
cout << "n is even number.";
}
else
{
cout << "n is odd number.";
}
// now using conditional ternary operator
cout << "n is " << (n % 2 == 0 ? "even" : "odd") << " number.";
Bitwise operators ( &, |, ^, ~, <<, >> )
Bitwise operators นั้นถูกใช้ในการดำเนินการระดับบิตของตัวแปรหรือข้อมูล มันมีประโยชน์มากในการเขียนโปรแกรมระดับต่ำ ตัวดำเนินการ Bitwise นั้นใช้หลักการทำงานเหมือนกับตัวดำเนินการทางตรรกศาสตร์ โดยใช้ 1
สำหรับค่าจริงและ 0
สำหรับค่าเท็จ
นี่เป็นรายการของตัวดำเนินการ Bitwise ในภาษา C++
Symbol | Name | Description |
---|---|---|
& | Bitwise AND | 1 ถ้าบิตทั้งคู่เป็น 1, ไม่เช่นนั้นเป็น 0 |
| | Bitwise inclusive OR | 1 ถ้าอย่างน้อยหนึงบิตเป็น 1, ไม่เช่นนั้นเป็น 0 |
^ | Bitwise exclusive OR | 1 ถ้าทั้งสองบิตแตกต่างกัน, ไม่เช่นนั้นเป็น 0 |
~ | bit inversion | กลับบิตจาก 1 เป็น 0 และในทางตรงข้าม |
<< | Shift bits left | เลื่อนบิตไปทางซ้าย เติมบิต 0 ทางขวา |
>> | Shift bits right | เลื่อนบิตไปทางขวา เติมบิต 0 ทางซ้าย |
จากตารางข้างบน เป็นตัวดำเนินการประเภทต่างๆ ในภาษา C++ ที่ใช้ดำเนินการกับข้อมูลในระดับบิต ยกตัวอย่าง เช่น เมื่อเรากำหนดค่าให้กับตัวแปรนั้น คอมพิวเตอร์จะเก็บข้อมูลในรูปแบบของเลขฐานสอง (Binary) ตัวดำเนินการเหล่านี้ใช้สำหรับจัดการกับข้อมูลดังกล่าว มาดูตัวอย่างการใช้งานในภาษา C++
#include <iostream>
using namespace std;
int main()
{
int a = 2; // 00000010
int b = 5; // 00000101
cout << "a & b =" << (a & b) << endl; // 00000000 = 0
cout << "a & b = " << (a | b) << endl; // 00000111 = 7
cout << "~a = " << ~a << endl; // 11111101 = -1
cout << "a >> 1 = " << (a >> 1) << endl; // 00000001 = 1
cout << "a << 1 = " << (a << 1) << endl; // 00000100 = 8
return 0;
}
ในตัวอย่าง เป็นโปรแกรมในการใช้งานตัวดำเนินการระดับบิตกับการจัดการข้อมูลประเภท Integer เราได้ประกาศตัวแปร a
และ b
และได้คอมเมนต์ค่าของ Binary ที่ถูกเก็บไว้ในหน่วยความจำ การทำงานของตัวดำเนินการ &
และ |
นั้นทำงานกับคู่ของแต่ละบิตของตัวแปรทั้งสอง ส่วนอีกสามตัวดำเนินการที่เหลือนั้นกระทำกับตัวแปรเดียว ในตัวดำเนินการ ~
นั้นเป็นการกลับบิต และสำหรับตัวดำเนินการ Bit shift นั้นเมื่อเลื่อนบิตไปทางซ้ายจะทำให้ค่าเพิ่มขึ้นสองเท่า และเมื่อเลื่อนบิตไปทางขวาก็จะทำให้ค่าลดลงสองเท่า
a & b = 0
a & b = 7
~a = -3
a >> 1 = 1
a << 1 = 4
นี่เป็นผลลัพธ์การทำงานของโปรแกรมของการใช้งานตัวดำเนินการระดับบิตในภาษา C++
Explicit type casting operator
ในภาษา C++ นั้นจะมีข้อมูลประเภทต่างๆ ข้อมูลบางประภทสามารถแปลงไปอีกประเภทได้โดยการใช้ Explicit type casting ข้อมูลบางประเภทจำเป็นต้องใช้ฟังก์ชันจากไลบรารี่ของภาษา C++ หรือคุณสามารถสร้างฟังก์ชันของคุณเองเพื่อแปลงข้อมูลเหล่านั้น ในตัวอย่างนี้เราจะใช้การแปลงข้อมูลแบบ Explicit type casting เพื่อแปลงค่าข้อมูลพื้นฐานเช่น Integer และ Float
float b = 10.25;
int a = (int) b;
ในตัวอย่างนี้ เราได้แปลง 10.25
ไปเป็น Integer ดังนั้นตัวแปร a
จะมีค่าเป็น 10
Operator precedence
ลำดับความสำคัญของตัวดำเนินการ (Operator precedence) ใช้เพื่อกำหนดว่าตัวดำเนินการใช้ที่จะถูกทำงานก่อน ยกตัวอย่างเช่น 5 + 4 * 2
นั้นจะถูกคำนวณเป็น 5 + (4 * 2)
ซึ่งเท่ากับ 13
เพราะว่าตัวดำเนินการคูณ (*
) นั้นมีความสำคัญมากกว่าตัวกำเนินการบวก (+
) ดังนั้นหากเราต้องการให้โปรแกรมบวกกันก่อนเราสามารถใช้วงเล็บ (5 + 4) * 2
จะได้เท่ากับ 22
เพราะว่าวงเล็บนั้นมีความสำคัญมากกว่าตัวดำเนินการคูณ (*
)
ข้างล่างนี้ เป็นตารางแสดงลำดับความสำคัญของตัวดำเนินการในภาษา C++
Operator Name | Associativity | Operators |
---|---|---|
Primary scope resolution | left to right | :: |
Primary | left to right | ()[].-> dynamic_cast typeid |
Unary | ขวาไปซ้าย | ++--+-!~&*(type_name)sizeof new delete |
C++ Pointer to Member | left to right | .*->* |
Multiplicative | ซ้ายไปขวา | */% |
Additive | ซ้ายไปขวา | +- |
Bitwise Shift | ซ้ายไปขวา | <<>> |
Relational | ซ้ายไปขวา | <><=>= |
Equality | ซ้ายไปขวา | ==!= |
Bitwise AND | ซ้ายไปขวา | & |
Bitwise Exclusive OR | ซ้ายไปขวา | ^ |
Bitwise Inclusive OR | ซ้ายไปขวา | | |
Logical AND | ซ้ายไปขวา | && |
Logical OR | ซ้ายไปขวา | || |
Conditional | ขวาไปซ้าย | ?: |
Assignment | ขวาไปซ้าย | =+=-=*= /=<<=>>= %= &=^=|= |
Comma | ซ้ายไปขวา | , |
ในบทนี้ คุณได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา C++ เราได้อธิบายความหมายและตัวอย่างการใช้งานตัวดำเนินการประเภทต่างๆ เพื่อนำไปเขียนโปรแกรมให้ตรงกับความของการ และเราได้พูดถึงลำดับความสำคัญของตัวดำเนินการ ที่เป็นสิ่งกำหนดว่าตัวดำเนินการไหนที่จะถูกทำงานก่อน