ตัวดำเนินการ ภาษาซี 1

ภาษา c      ในการเขียนโปรแกรม ภาษา c นั้น จำเป็นจะต้องมีการดำเนินการระหว่างค่อ หรือ ข้อมูลต่างๆอยู่ตลอดเวลา ซึ่งในบทความนี้เราจะมาศึกษาเกียวกับตัวนำเนินการต่างๆ ของภาษษซี  เราจะมาดูว่าตัวนำเนินการ (Operator) ของภาษาซีนั้นจะมีอะไรบ้าง และแต่ละอย่างมีการทำงานอย่างไร

โอเปอเรเตอร์(Operator) คือ ตัวดำเนินการซึงอาจเป็น การดำเนินการทางคณิตศาตร์  การนำเนินการทางตรรกศาสตร์ หรือ อื่นๆ โดยที่ โอเปอเรเตอร์มักจะเป็นเครื่องหมายหรือสัญญาลักษณ์พิเศษต่างๆเช่น +,-,*,/,%,&&,||,>,< เป็นต้น

โอเปอแรนด์(Operand) คือ : คือตัวกระทำ อาจเป็นค่าคงที่ ตัวแปร นิพจน์ หรือฟังก์ชั่นก็ได้
นิพจน์(Expression) คือ : การนำเอาโอเปอเรเตอร์ และโอเปอแรนด์หลายๆตัวมารวมกันเป็นประโยคเดียวกัน

รูปนี้เป็นรูปแสดงความสำพันธ์ระหว่าง Operand And Expressionภาษา c

กาดำเนินการทางคณิตศาสตร์ คือ การนำค่า โอเปอเแรนด์( Operand ) 2 ค่ามากระทำกันโดยใช้ โอเปอร์เรเตอร์(Operator)หรือตัวดำเนินการทางคณิตศาสตร์ เช่น บวก ลบ คูณ หาร หรือบางครั้งก็ เอา  โอเปอเรเตอร์ไปกระทำกับ โอเปอแรนด์(Operand) เพียงตัวเดียว เรามาดูกันว่า Operator ทางคณิตศาสตร์ นั้นมีอะไรกันบางนะครับ

Arithmetic Operator (โอเปอเรเตอร์ คณิตศาสตร์) นั้นเราจะสามารถแบ่งออก เป็น 7 ประเภท แล้วมันมี อะไรบ้างเราจะมาดูกัน ตามตารางข้างล่างนี้เลย

โอเปอร์เรเตอร์
ความหมาย
ตัวอย่าง
ผลลัพธ์
+
บวก 10+5 15
-
ลบ 10-5 5
*
คูณ 10*5 50
/
หาร 11 / 5

2 (คือง่ายๆเลยนะครับมัน
จะตัดส่วนที่เป็นเศษทิ้งไป)

%
Modulo หรือ หารเอาแต่เศษ 11 / 5 1

++

 

เพิ่มค่าขึ้น 1 โดย ท่าไว้ด้านหลัง เช่น a++ มันจะทำการเพิ่มค่าให้ ตัวแปร a แต่จะเอาค่า a ไปใช้ก่อนแล้วจึงจะเพิ่มค่าให้ a ขึ้น1

b=a++; มีความหมายว่า b=a; แล้ว a=a+1; อีกที

 

ถ้า a=2; เราก็จะได้ b=3; a=2;

ท่าเอาไว้ด้านหน้า ++a มันก็จะทำการเพิ่มค่าให้ตัวแปร a ก่อนที่จะเอาค่า a ไปใช้งานครับ b=++a;มีความหมายว่า a=a+1;แล้วจึงค่อยมา b=a; อีกที

ถ้า a=2 เราก็จะได้b=3; a=3;

--

 

ลดค่าลง 1 โดย ท่าเอาไปไว้ด้านหลัง เช่นนี้ a--ก็จะเอาค่า a ไปใช้ก่อนแล้วจึงนำค่า a ไปใช้งาน นะครับ b=a--;มีความหมายว่า b=a; แล้ว a=a-1; อีกที

ถ้า a = 10; เราก็จะได้ a=9; b=10;

 

 

ท่าเอาไปไว้ด้านหหน้า เช่นนี้
--a; มันก็จะทำการลดค่าให้ตัวแปร a ก่อนที่จะเอาค่า a ไปใช้งานครับ

b=--a;มีความหมายว่า a=a-1; แล้ว b=a; อีกที

ถ้า a = 10; เราก็จะได้ a=9; b=9;

 
Note
 
x++ หรือ ++x มีความหมายเหมือนกันคือการเพิ่มค่า x ขึ้น 1 เพียงแต่เมื่อนำไปใช้ร่วมกั[ นิพจน์(Expression) อืนๆแล้วลำดับการทำงานของ x++ และ ++x จะแตกต่างกันนะครับ

a=x++;
b=++x;
ลำดับการทำงานจะเป็นดั้งนนี้
ภาษา c จะเห็นได้ว่า x++ และ++x ต่างก็เหมือนกัน คือ เพิ่มค่าx ขึ้น1 ก็คือ ++x จะทำการเพิ่มค่าของ x ขึ้น1 ก่อนจะนำค่าของ xไปใช้ในนิพจน์ แต่ x++ จะนำค่าของ x ไปใช้ในนิพจน์ก่อน แล้วค่อยเพิ่มค่าของ xขึ้น 1
สำหรับกรณีของ x—และ –x ก็มีหลักการเช่นเดียวกันกับ x++ และ ++x ดังที่กล่าวในตารางแล้วนะครับ

ขอปิดท้ายด้วย แบบ ฝึกหัดเล่นๆ เพื่อความเข้าจัยหน่อยนะครับแล้วเราก็ค่อยมาศึกษาต่อใน บท Operator and Operations2 เรื่อง ลำดับความสำคัญของการทำงานของ Operator งันเรามาลองทำแบบฝึกหัดดีกว่า

จงหา

ถ้า x=1, y=3;

1. x+y=?

2. x-y=?

3. x*y=?

4. x/y=?

5. x%y=?

6. z=x++;  z=? x=?

7. z= --y;   z=? y=?

8. z= y++; z=? y=?

9. z= –x; z=?  x=?

ลองทำดูนะครับ

>> ตัวดำเนินการ 2

0 ความคิดเห็น:

แสดงความคิดเห็น