เครื่องหมายและการดำเนินการในภาษา C
การดำเนินการในการเขียนโปรแกรมภาษา C มีอยู่ 3 ประเภท คือ การคำนวณทางคณิตศาสตร์ การเปรียบเทียบ และ การดำเนินการทางตรรกศาสตร์ ซึ่งการดำเนินการแต่ละประเภท จะมีเครื่องหมายที่ต้องใช้เพื่อเขียนคำสั่ง สำหรับการดำเนินการประเภทนั้น ๆ ดังรายละเอียด
เครื่องหมายการคำนวณทางคณิตศาสตร์
เครื่องหมายที่ใช้สำหรับการคำนวณทางคณิตศาสตร์ใช้ภาษา C สรุปดังนี้
เครื่องหมาย |
ความหมาย |
ตัวอย่าง |
+ |
บวก |
3+2 การบวกเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 5 |
- |
ลบ |
3 - 2 การลบเลข 3 ลบกับ 2 ได้ผลลัพธ์คือ 1 |
* |
คูณ |
2*3 การคูณเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 6 |
/ |
หาร |
15/2 การหาร 15 หารกับ 2 ได้ผลลัพธ์คือ 7 |
% |
หารเอาเศษ |
15%2การหารเอาเศษ 15 หารกับ 2 ได้ผลลัพธ์คือ 1 |
เครื่องหมาย |
ความหมาย |
ตัวอย่าง |
++ |
เพิ่มค่าขึ้น 1 โดย
a++ จะนำค่าของ a ไปใช้ก่อนแล้วจึงเพิ่มค่าของ a ขึ้น 1
++a จะเพิ่มค่าของ a ขึ้น 1 ก่อนแล้วจึงนำค่าของ a ไปใช้ |
b=a++;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
b=a;
a=a+1;
b=++a;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
a=a+1;
b=a; |
-- |
ลดค่า 1 โดย
a-- จะนำค่าของ a ไปใช้ก่อน แล้วจึงลดค่าของ a ลง 1
--a จะลดค่าของ a ลง 1 ก่อน แล้วจึงนำค่าของ a ไปใช้ |
b=a--;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
b=a;
a=a-1;
b=--a;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
a=a-1;
b=a; |
ตัวดำเนินการเปรียบเทียบ
ใช้เปรียบเทียบค่า 2 ค่าเพื่อแสดงการเลือก ซึ่งโปรแกรมโดยทั่วไปใช้ในการทดสอบเงื่อนไขตามที่กำหนดการเปรียบเทียบโดยการเท่ากันของ 2 ค่าจะใช้เครื่องหมาย ==
เครื่องหมาย |
ความหมาย |
ตัวอย่าง |
> |
มากกว่า |
a > b a มากกว่า b |
>= |
มากกว่าหรือเท่ากับ |
a >= b a มากกว่าหรือเท่ากับ b |
< |
น้อยกว่า |
a < b a น้อยกว่า b |
<= |
น้อยกว่าหรือเท่ากับ |
a <= b a น้อยกว่าหรือเท่ากับ b |
== |
เท่ากับ |
a == b a เท่ากับ b |
!= |
ไม่เท่ากับ |
a != b a ไม่เท่ากับ b |
ตัวดำเนินการตรรกะ
การดำเนินการเปรียบเทียบค่าทางตรรกะ( และ หรือ ไม่)
เครื่องหมาย |
ความหมาย |
ตัวอย่าง |
&& |
และ |
x < 60 && x > 50 กำหนดให้ x มีค่าในช่วง 50 ถึง 60 |
|| |
หรือ |
x == 10 || x == 15 กำหนดให้ x มีค่าเท่ากับตัวเลข 2 ค่า คือ 10 หรือ 15 |
! |
ไม่ |
x = 10 !x กำหนดให้ x ไม่เท่ากับ 10 |
การเขียนนิพจน์ในภาษา C
นิพจน์ในภาษา C ก็คือ การนำข้อมูลและตัวแปรในภาษา C มาดำเนินการด้วยเครื่องหมายทางคณิตศาสตร์ ตรรกศาสตร์ หรือเครื่องหมายเปรียบเทียบในภาษา C เป็นตัวสั่งงาน ดังตัวอย่าง

ลำดับความสำคัญของเครื่องหมาย
ส่วนใหญ่นิพจน์ที่เขียนขึ้นในโปรแกรมมักจะซับซ้อน มีการดำเนินการหลายอย่างปะปนอยู่ภายในนิพจน์เดียวกัน
ลำดับความสำคัญ |
ลำดับความสำคัญจากสูงไปต่ำ |
1 |
( ) |
2 |
!,++,- - |
3 |
*,/,% |
4 |
+,- |
5 |
<,<=,>,>= |
6 |
= =,!= |
7 |
&& |
8 |
|| |
9 |
*=,/=,%=,+=,-= |
ตัวอย่างการทำงานของโอเปอเรเตอร์
จงหาค่าของนิพจน์ 8 + 7 * 6
วิธีทำ
1. ให้สังเกตที่ตัวโอเปอเรเตอร์ก่อนเสมอว่ามีโอเปอเรเตอร์อะไรบ้าง ในที่นี้มี + และ *
2. ทำการไล่ลำดับความสำคัญของโอเปอเรเตอร์ทั้งหมดเปรียบเทียบกัน จากตัวที่มีลำดับความสำคัญสูงสุดไปยังตัวที่มีลำดับสำคับต่ำสุด
ลำดับความสำคัญจากสูงไปต่ำ |
โอเปอเรเตอร์ |
|
* |
+ |
3. จากข้อ 2 จะได้ลำดับการทำงานเป็นดังนี้
ขั้นที่ 1 7 * 6 = 42
ขั้นที่ 2 8 + ค่าที่ได้จากขั้นที่ 1
= 8 + 42
= 50
ดังนั้น 8 + 7 * 6 = 50
จงหานิพจน์ต่อไปนี้
x*y - 20%z
|
1) |
x * y |
2) |
20%z |
3) |
1) - 2) |
(a - b)*10/c && d + 5 |
1) |
a - b |
2) |
1)*10 |
3) |
2)/c |
4) |
d+5 |
5) |
3) && 4) |
(a + b) * 4 = = c%d(e+10) |
1) |
a + b |
2) |
e + 10 |
3) |
1) * 4 |
4) |
d * 2) |
5) |
c %4) |
6) |
3) = = 5) |