Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ออเปอเรเตอร์และนิพจน์ต่างๆ ในภาษา C มีอะไรบ้าง?

ออเปอเรเตอร์ (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+b20+1030
-ลบa-b20-1010
*คูณa*b20*10200
/หารa/b20/102 (ผลหาร)
%หารเอาเศษ (Modular Division)a%b20%100 (เศษ)

ตัวอย่างโปรแกรม

#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<b10<201
<=น้อยกว่าหรือเท่ากับa<=b10<=201
>มากกว่าa>b10>200
>=มากกว่าหรือเท่ากับa>=b10>=200
==เท่ากับa==b10==200
!=ไม่เท่ากับa!=b10!=201

ตัวอย่างโปรแกรม

#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 (&&)

exp1exp2exp1 && exp2
TTT
TFF
FTF
FFF

ตารางความจริง Logical OR (||)

exp1exp2exp1 || exp2
TTT
TFT
FTT
FFF

ตารางความจริง Logical NOT (!)

exp!exp
TF
FT

ตัวอย่างโปรแกรม

#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 () - 取得ขนาดของชนิดข้อมูลหรือตัวแปรในหน่วยไบต์