ตัวดำเนินการ (Operator)

ตัวดำเนินการ (Operator)

ในการเขียนโปรแกรมจะต้องมีการสร้างนิพจน์ (expression) สำหรับให้คอมพิวเตอร์ประมวลผล โดยนิพจน์อาจเป็นข้อมูลเทอมเดียว เช่น การกำหนดค่าให้กับตัวแปร หรืออาจเกิดจากการประมวลผลของข้อมูลหลาย ๆ เทอมมาผสมกันโดยใช้ตัวดำเนินการ (Operator) สำหรับตัวแปรหรือข้อมูลที่ถูกดำเนินการเรียกว่า โอเปอแรนด์ (Operand) ผลลัพธ์ที่ได้จากการดำเนินการจะถูกเก็บไว้ในตัวแปรใดตัวแปรหนึ่ง ในการเขียนโปรแกรมด้วยภาษา C  มีกลุ่มของตัวดำเนินการดังต่อไปนี้

  • Assignment Operator หรือตัวดำเนินการกำหนดค่าให้กับตัวแปร
  • Arithmetic Operator หรือตัวดำเนินการทางคณิตศาสตร์
  • Logical Operator หรือตัวดำเนินการทางตรรกศาสตร์
  • Bitwise Operator หรือตัวดำเนินการระดับบิต
  • Comparison Operator หรือตัวดำเนินการเปรียบเทียบ

นอกจากนี้ตัวดำเนินการบางตัวยังสามารถกระทำกับตัวแปรเพียงหนึ่งตัวได้อีกด้วย เรียกตัวดำเนินการประเภทนี้ว่า Unary Operator ตัวอย่างเช่น ตัวดำเนินการเปลี่ยนค่าบวกเป็นค่าลบ ตัวดำเนินการเพิ่มค่าลดค่า เป็นต้น

ตัวดำเนินการทางคณิตศาสตร์

ตัวดำเนินการสำหรับคำนวณทางคณิตศาสตร์เป็นตัวดำเนินการที่ใช้มากที่สุดในการเขียนโปรแกรมคอมพิวเตอร์ ตัวดำเนินการทางคณิตศาสตร์มีทั้งหมด 7 ตัว ดังตารางต่อไปนี้

สัญลักษณ์ ตัวดำเนินการ ตัวอย่างและความหมาย
+ บวก (add) x = a+b; นำค่า a บวกกับ b แล้วเก็บไว้ใน x
ลบ (subtract) x = a-b; นำค่า a ลบด้วย b แล้วเก็บไว้ใน x
* คูณ (multiply) x = a*b; นำค่า a คูณกับค่า b แล้วเก็บไว้ใน x
/ หาร (divide) x = a/b นำค่า a หารด้วย b ผลลัพธ์เก็บไว้ใน x
% หารเอาเศษ (modulo) x = a%b นำเศษจากการหาร a ด้วย b แล้วเก็บไว้ใน x
++ เพิ่มค่า x++; เพิ่มค่า x ขึ้นหนึ่งค่า
– – ลดค่า x–; ลดค่า x ลงหนึ่งค่า

นิพจน์ทางคณิตศาสตร์นั้นสามารถเกิดจากตัวดำเนินการหลาย ๆ ตัวมากระทำกับตัวแปรหรือค่าคงที่ได้ และสามารถใส่ตัวดำเนินการไปพร้อมกับการประกาศตัวแปรได้ แต่ประเภทของข้อมูลที่ประกาศตัวแปรนั้นจะต้องสอดคล้องกับผลลัพธ์ที่ได้จากการประมวลผลของนิพจน์นั้น ตัวอย่างเช่น

จากตัวอย่างเป็นการประกาศตัวแปร n เป็นแบบเลขจำนวนเต็มให้เก็บผลลัพธ์จากการประมวลผลของนิพจน์ดังกล่าว ในภาษา C  ถ้าหากมีตัวดำเนินการหลายตัวโปรแกรมจะประมวลผลตัวดำเนินการจากทางซ้ายไปทางขวา และตัวดำเนินการตัวใดมีความสำคัญสูงกว่าจะถูกประมวลผลก่อน ดังนั้นจากนิพจน์ที่เขียนขึ้นจะเป็นการนำ 5 ไปคูณกับ 3 ได้ผลลัพธ์เป็น 15 จากนั้นนำไปบวกกับ 2 ได้ผลลัพธ์เป็น 17 ซึ่งจะนำผลลัพธ์ที่ได้ไปเก็บไว้ในตัวแปร n ที่ถูกประกาศไว้เป็น Integer แต่ถ้าหากประกาศตัวแปรไม่ถูกประเภท ตัวอย่างเช่น

เมื่อคอมไพล์โปรแกรมจะแจ้งข้อผิดพลาดออกมา เนื่องจากเป็นการประมวลผลระหว่างตัวเลขจำนวนเต็มกับเลขทศนิยม ผลลัพธ์ที่ได้จะเก็บเป็นข้อมูลแบบ double แต่โปรแกรมประกาศให้ตัวแปร n เป็นประเภท int เครื่องจึงแจ้งว่าไม่สามารถเปลี่ยนตัวเลขแบบ double ให้เป็นแบบ int

ตัวดำเนินการเปรียบเทียบ

ตัวดำเนินการเปรียบเทียบใช้สำหรับนำค่าของตัวแปรหรือค่าคงที่จำนวนสองตัวมาเปรียบเทียบกัน ผลลัพธ์ที่ได้จะเป็นค่าทางตรรกะ (bool) คือมีค่าเป็นจริง (true) หรือเท็จ (false) ตัวดำเนินการประเภทนี้มี 6 ตัว ดังตารางต่อไปนี้

สัญลักษณ์ ตัวดำเนินการ ตัวอย่างและความหมาย
= = เท่ากับ a = = b; เป็นจริง ถ้าค่าในตัวแปร a เท่ากับตัวแปร b
> มากกว่า a > b; เป็นจริง ถ้าค่าในตัวแปร a มากกว่าตัวแปร b
> = มากกว่าหรือเท่ากับ a > = b; เป็นจริง ถ้าค่าในตัวแปร a มากกว่าหรือเท่ากับตัวแปร b
< น้อยกว่า a < b; เป็นจริง ถ้าค่าในตัวแปร a น้อยกว่าตัวแปร b
< = น้อยกว่าหรือเท่ากับ a < = b; เป็นจริง ถ้าค่าในตัวแปร a น้อยกว่าหรือเท่ากับตัวแปร b
!= ไม่เท่ากับ a != b; เป็นจริง ถ้าค่าในตัวแปร a ไม่เท่ากับค่าในตัวแปร b

ตัวดำเนินการตรรกศาสตร์

ตัวดำเนินการทางตรรกศาสตร์ (Logical Operators) เป็นการนำตัวแปรหรือค่าคงที่สองค่ามาประมวลผลทางตรรกศาสตร์ต่อกัน ผลลัพธ์ที่ได้จะเป็นจริง (true) หรือเท็จ (false) เท่านั้น ตัวดำเนินการประเภทนี้บางตัวยังสามารถประมวลผลในระดับบิตได้อีกด้วย สัญลักษณ์ของตัวดำเนินการแสดงได้ดังตารางต่อไปนี้

สัญลักษณ์ ตัวดำเนินการ ตัวอย่างและความหมาย
! NOT !a           กลับค่าลอจิกของ a ถ้าหาก a เป็นจริง ผลลัพธ์จะเป็นเท็จ
& AND a & b      ดำเนินการ AND ระหว่าง a กับ b
| OR a | b       ดำเนินการ OR ระหว่าง a กับ b
^ XOR a ^ b      ดำเนินการ exclusive ระหว่าง a กับ b
&& Short-circuit AND a && b    ดำเนินการ AND แบบ short-circuit AND
|| Short-circuit OR a || b      ดำเนินการ OR แบบ short-circuit OR

การดำเนินการทางตรรกะนั้นผลลัพธ์ที่ได้จะเป็นค่าแบบ bool โดยการดำเนินการแบบ AND, OR และ NOT แสดงได้ดังตารางความจริงต่อไปนี้

ตารางความจริงของการ AND

x y x && y
false false false
false true false
true false false
true true true

ตารางความจริงของการ OR

x y x && y
false false false
false true true
true false true
true true true

ตารางความจริงของการ NOT

x !x
false true
true false

สรุป
ตัวดำเนินการ

  • ดำเนินการทางคณิคศาสตร์เป็นตัวดำเนินการที่ใช้มากที่สุดในการเขียนโปรแกรมคอมพิวเตอร์ ตัวดำเนินการทางคณิตศาสตร์มีทั้งหมด 7 ตัว ได้แก่ บวก (+) ลบ (-) คูณ (*) หาร (/) หารเอาเศษ (%) เพิ่มค่า (++) และ ลดค่า (–)
  • ตัวดำเนินการตรรกศาสตร์ ได้แก่ NOTE (!) AND (&) OR (|)