ออเปอเรเตอร์ (Operator) ทำหน้าที่ดำเนินการกับข้อมูล สามารถจัดประเภทได้ดังนี้:
- ออเปอเรเตอร์ทางคณิตศาสตร์ (Arithmetic operators)
- ออเปอเรเตอร์เชิงสัมพันธ์ (Relational operators)
- ออเปอเรเตอร์ตรรกะ (Logical operators)
- ออเปอเรเตอร์กำหนดค่า (Assignment operators)
- ออเปอเรเตอร์เพิ่มและลดค่า (Increment and decrement operators)
- ออเปอเรเตอร์บิตวายส์ (Bitwise operators)
- ออเปอเรเตอร์เงื่อนไข (Conditional operators)
- ออเปอเรเตอร์พิเศษ (Special operators)
ออเปอเรเตอร์ทางคณิตศาสตร์ (Arithmetic Operators)
ใช้สำหรับการคำนวณตัวเลขหรือดำเนินการทางคณิตศาสตร์ เช่น บวก ลบ คูณ หาร และหารเอาเศษ
| ออเปอเรเตอร์ | คำอธิบาย | ตัวอย่าง | a=20, b=10 | ผลลัพธ์ |
|---|---|---|---|---|
| + | บวก | a+b | 20+10 | 30 |
| - | ลบ | a-b | 20-10 | 10 |
| * | คูณ | a*b | 20*10 | 200 |
| / | หาร | a/b | 20/10 | 2 (ผลหาร) |
| % | หารเอาเศษ (Modular Division) | a%b | 20%10 | 0 (เศษ) |
ตัวอย่างโปรแกรม
#include <stdio.h>
int main() {
int a = 20, b = 10;
printf("%d ", a+b);
printf("%d ", a-b);
printf("%d ", a*b);
printf("%d ", a/b);
printf("%d ", a%b);
return 0;
}
ผลลัพธ์
30 10 200 2 0
ออเปอเรเตอร์เชิงสัมพันธ์ (Relational Operators)
ใช้สำหรับเปรียบเทียบนิพจน์สองนิพจน์ ผลลัพธ์จะเป็น true (1) หรือ false (0)
| ออเปอเรเตอร์ | คำอธิบาย | ตัวอย่าง | a=20, b=10 | ผลลัพธ์ |
|---|---|---|---|---|
| < | น้อยกว่า | a<b | 10<20 | 1 |
| <= | น้อยกว่าหรือเท่ากับ | a<=b | 10<=20 | 1 |
| > | มากกว่า | a>b | 10>20 | 0 |
| >= | มากกว่าหรือเท่ากับ | a>=b | 10>=20 | 0 |
| == | เท่ากับ | a==b | 10==20 | 0 |
| != | ไม่เท่ากับ | a!=b | 10!=20 | 1 |
ตัวอย่างโปรแกรม
#include <stdio.h>
int main() {
int a = 10, b = 20;
printf("%d ", a<b);
printf("%d ", a<=b);
printf("%d ", a>b);
printf("%d ", a>=b);
printf("%d ", a==b);
printf("%d ", a!=b);
return 0;
}
ผลลัพธ์
1 1 0 0 0 1
ออเปอเรเตอร์ตรรกะ (Logical Operators)
ใช้รวมนิพจน์สองนิพจน์ขึ้นไปอย่างตรรกะ ได้แก่ AND (&&), OR (||), NOT (!)
ตารางความจริง Logical AND (&&)
| exp1 | exp2 | exp1 && exp2 |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | F |
ตารางความจริง Logical OR (||)
| exp1 | exp2 | exp1 || exp2 |
|---|---|---|
| T | T | T |
| T | F | T |
| F | T | T |
| F | F | F |
ตารางความจริง Logical NOT (!)
| exp | !exp |
|---|---|
| T | F |
| F | T |
ตัวอย่างโปรแกรม
#include <stdio.h>
int main() {
int a = 10, b = 20, c = 30;
printf("%d ", (a>b) && (a<c));
printf("%d ", (a>b) || (a<c));
printf("%d ", !(a>b));
return 0;
}
ผลลัพธ์
0 1 1
ออเปอเรเตอร์กำหนดค่า (Assignment Operators)
ใช้กำหนดค่าให้ตัวแปร ประกอบด้วย:
- การกำหนดค่าพื้นฐาน (=)
- การกำหนดค่ารวม (+=, -=, *=, /=, %=)
| ออเปอเรเตอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| = | กำหนดค่าพื้นฐาน | a=10 |
| +=, -=, *=, /=, %= | กำหนดค่ารวม | a+=10 หมายถึง a=a+10 |
ตัวอย่างโปรแกรม
#include <stdio.h>
int main() {
int a = 10;
printf("%d ", a);
printf("%d ", a+=10);
return 0;
}
ผลลัพธ์
10 20
ออเปอเรเตอร์เพิ่มและลดค่า (Increment and Decrement Operators)
ออเปอเรเตอร์เพิ่มค่า (++)
เพิ่มค่าตัวแปรขึ้น 1 มี 2 รูปแบบ:
- Pre-increment (++a): เพิ่มค่าก่อน แล้วค่อยนำค่าไปใช้
- Post-increment (a++): นำค่าไปใช้ก่อน แล้วค่อยเพิ่มค่า
ตัวอย่าง:
z = ++a; // a = a+1, z = a z = a++; // z = a, a = a+1
ออเปอเรเตอร์ลดค่า (--)
ลดค่าตัวแปรลง 1 มี 2 รูปแบบ:
- Pre-decrement (--a): ลดค่าก่อน แล้วค่อยนำค่าไปใช้
- Post-decrement (a--): นำค่าไปใช้ก่อน แล้วค่อยลดค่า
ออเปอเรเตอร์บิตวายส์ (Bitwise Operators)
ดำเนินการระดับบิต
| ออเปอเรเตอร์ | คำอธิบาย |
|---|---|
| & | Bitwise AND |
| | | Bitwise OR |
| ^ | Bitwise XOR |
| << | Left Shift |
| >> | Right Shift |
| ~ | One's Complement |
ออเปอเรเตอร์เงื่อนไข (Conditional Operator ? :)
เรียกอีกอย่างว่า Ternary Operator
exp1 ? exp2 : exp3
ถ้า exp1 เป็นจริง ให้ประเมิน exp2 มิฉะนั้นให้ประเมิน exp3
ออเปอเรเตอร์พิเศษ (Special Operators)
- Comma (,) - ใช้คั่นตัวแปร เช่น a=10, b=20
- Address (&) - 取得ที่อยู่ของตัวแปร
- Sizeof () - 取得ขนาดของชนิดข้อมูลหรือตัวแปรในหน่วยไบต์