ตัวดําเนินการในภาษา C มีกี่ประเภท

9 การดู

ภาษา C มีตัวดำเนินการหลากหลายประเภท ครอบคลุมการทำงานพื้นฐานจนถึงการจัดการระดับบิต โดยหลักๆ แบ่งเป็นตัวดำเนินการทางคณิตศาสตร์, การเปรียบเทียบค่า, การตรวจสอบความเท่ากัน, และการดำเนินการทางตรรกะ นอกจากนี้ ยังมีตัวดำเนินการกำหนดค่า, ตัวดำเนินการเพิ่ม/ลดค่า, และตัวดำเนินการระดับบิต เพื่อรองรับการเขียนโปรแกรมที่มีประสิทธิภาพและหลากหลาย

ข้อเสนอแนะ 0 การถูกใจ

เจาะลึกโลกของตัวดำเนินการในภาษา C: มากกว่าแค่ +-*/

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

1. ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operators):

พื้นฐานของการคำนวณ ตัวดำเนินการเหล่านี้ใช้ในการดำเนินการทางคณิตศาสตร์ทั่วไป ได้แก่:

  • + (บวก): บวกค่าสองค่าเข้าด้วยกัน
  • - (ลบ): ลบค่าหนึ่งออกจากอีกค่าหนึ่ง
  • * (คูณ): คูณค่าสองค่าเข้าด้วยกัน
  • / (หาร): หารค่าหนึ่งด้วยอีกค่าหนึ่ง
  • % (มอดุลัส): หาเศษจากการหาร

ตัวอย่าง:

int a = 10, b = 3;
int sum = a + b;      // sum = 13
int difference = a - b; // difference = 7
int product = a * b;    // product = 30
int quotient = a / b;   // quotient = 3 (เนื่องจากเป็น int/int จะได้ผลลัพธ์เป็น int)
int remainder = a % b;  // remainder = 1

2. ตัวดำเนินการเปรียบเทียบ (Relational Operators):

ใช้ในการเปรียบเทียบค่าสองค่า ผลลัพธ์ที่ได้จะเป็นจริง (True) หรือเท็จ (False) ซึ่งในภาษา C จะแทนด้วย 1 และ 0 ตามลำดับ

  • == (เท่ากับ): ตรวจสอบว่าสองค่าเท่ากันหรือไม่
  • != (ไม่เท่ากับ): ตรวจสอบว่าสองค่าไม่เท่ากันหรือไม่
  • > (มากกว่า): ตรวจสอบว่าค่าทางซ้ายมากกว่าค่าทางขวาหรือไม่
  • < (น้อยกว่า): ตรวจสอบว่าค่าทางซ้ายน้อยกว่าค่าทางขวาหรือไม่
  • >= (มากกว่าหรือเท่ากับ): ตรวจสอบว่าค่าทางซ้ายมากกว่าหรือเท่ากับค่าทางขวาหรือไม่
  • <= (น้อยกว่าหรือเท่ากับ): ตรวจสอบว่าค่าทางซ้ายน้อยกว่าหรือเท่ากับค่าทางขวาหรือไม่

ตัวอย่าง:

int x = 5, y = 8;
int isEqual = (x == y); // isEqual = 0 (False)
int isNotEqual = (x != y); // isNotEqual = 1 (True)
int isGreaterThan = (x > y); // isGreaterThan = 0 (False)

3. ตัวดำเนินการทางตรรกะ (Logical Operators):

ใช้ในการรวมหรือแก้ไขเงื่อนไข Boolean (จริง/เท็จ)

  • && (AND): ให้ผลลัพธ์เป็นจริงก็ต่อเมื่อทั้งสองเงื่อนไขเป็นจริง
  • || (OR): ให้ผลลัพธ์เป็นจริงหากเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง
  • ! (NOT): เปลี่ยนค่าจริงเป็นเท็จ และค่าเท็จเป็นจริง

ตัวอย่าง:

int a = 1, b = 0;
int andResult = (a && b); // andResult = 0 (False)
int orResult = (a || b);  // orResult = 1 (True)
int notResult = !a;       // notResult = 0 (False)

4. ตัวดำเนินการกำหนดค่า (Assignment Operators):

ใช้ในการกำหนดค่าให้กับตัวแปร

  • = (กำหนดค่า): กำหนดค่าทางขวาให้กับตัวแปรทางซ้าย
  • += (บวกและกำหนดค่า): เพิ่มค่าทางขวาให้กับตัวแปรทางซ้าย แล้วกำหนดค่าผลลัพธ์ให้กับตัวแปรเดิม
  • -= (ลบและกำหนดค่า): ลบค่าทางขวาออกจากตัวแปรทางซ้าย แล้วกำหนดค่าผลลัพธ์ให้กับตัวแปรเดิม
  • *= (คูณและกำหนดค่า): คูณค่าทางขวากับตัวแปรทางซ้าย แล้วกำหนดค่าผลลัพธ์ให้กับตัวแปรเดิม
  • /= (หารและกำหนดค่า): หารตัวแปรทางซ้ายด้วยค่าทางขวา แล้วกำหนดค่าผลลัพธ์ให้กับตัวแปรเดิม
  • %= (มอดุลัสและกำหนดค่า): หาเศษจากการหารตัวแปรทางซ้ายด้วยค่าทางขวา แล้วกำหนดค่าผลลัพธ์ให้กับตัวแปรเดิม

ตัวอย่าง:

int num = 10;
num += 5;  // num = 15 (เทียบเท่ากับ num = num + 5;)
num *= 2;  // num = 30 (เทียบเท่ากับ num = num * 2;)

5. ตัวดำเนินการเพิ่ม/ลดค่า (Increment/Decrement Operators):

ใช้ในการเพิ่มหรือลดค่าของตัวแปรลง 1

  • ++ (เพิ่มค่า): เพิ่มค่าตัวแปรขึ้น 1
  • -- (ลดค่า): ลดค่าตัวแปรลง 1

ข้อควรระวัง: ตัวดำเนินการเหล่านี้สามารถใช้ได้ทั้งแบบ Prefix (++x) และ Postfix (x++) ซึ่งมีความแตกต่างกันในเรื่องของลำดับการดำเนินการ

ตัวอย่าง:

int x = 5;
int preIncrement = ++x;  // x = 6, preIncrement = 6 (เพิ่มค่าก่อนแล้วค่อยกำหนดค่า)
int postIncrement = x++; // x = 7, postIncrement = 6 (กำหนดค่าก่อนแล้วค่อยเพิ่มค่า)

6. ตัวดำเนินการระดับบิต (Bitwise Operators):

ใช้ในการดำเนินการกับบิตแต่ละบิตของข้อมูล เหมาะสำหรับการจัดการข้อมูลในระดับต่ำ และการเขียนโปรแกรมที่ต้องการประสิทธิภาพสูง

  • & (AND): AND แบบบิตต่อบิต
  • | (OR): OR แบบบิตต่อบิต
  • ^ (XOR): XOR แบบบิตต่อบิต
  • ~ (NOT): NOT แบบบิตต่อบิต (กลับบิต)
  • << (เลื่อนบิตไปทางซ้าย): เลื่อนบิตไปทางซ้ายตามจำนวนที่ระบุ
  • >> (เลื่อนบิตไปทางขวา): เลื่อนบิตไปทางขวาตามจำนวนที่ระบุ

ตัวอย่าง:

unsigned int a = 60;  // 0011 1100
unsigned int b = 13;  // 0000 1101
unsigned int andResult = a & b; // 0000 1100 (12)
unsigned int orResult = a | b;  // 0011 1101 (61)

7. ตัวดำเนินการอื่นๆ:

นอกจากตัวดำเนินการที่กล่าวมาแล้ว ภาษา C ยังมีตัวดำเนินการอื่นๆ อีก เช่น:

  • , (Comma Operator): ใช้ในการประเมินหลายนิพจน์จากซ้ายไปขวา โดยนิพจน์สุดท้ายจะเป็นค่าที่ส่งคืน
  • sizeof: คืนค่าขนาด (เป็นไบต์) ของตัวแปรหรือชนิดข้อมูล
  • ? : (Conditional Operator หรือ Ternary Operator): เป็นตัวดำเนินการแบบมีเงื่อนไขที่ใช้ในการเขียน if-else statement แบบสั้นๆ

สรุป:

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