ยินดีต้อนรับเพื่อนๆ เอกคอมพิวเตอร์ศึกษา และผู้ที่เวะเข้ามาชมทุกคนคับ ที่เข้ามาเยี่ยมชมเว็บบร็อกของผม ยินดีต้อนรับเข้าสู้เว็บไซต์http://teenemerux.blogspot.com

วันจันทร์ที่ 13 กุมภาพันธ์ พ.ศ. 2555

ลำดับการทำงานของตัวดำเนินการ (precedence and associativity of operators)


ตารางที่ 2.9 แสดงลำดับการทำงานของตัวดำเนินการในภาษา C มีดังนี้

ลำดับที่
ตัวดำเนินการ
(Operator)
ลักษณะการทำงาน (Associativity)
1
( ) [ ] . ->
Left to right
2
- ~ ! * &
Light to left
3
++ - -
Right to left
4
* / %
Left to right
5
+ -
Left to right
6
<< >>
Left to right
7
< > < = >=
Left to right
8
= = !=
Left to right
9
& (bitwise AND)
Left to right
10
^ (bitwise exclu OR)
Left to right
11
| (bitwise inclu OR)
Left to right
12
&&
Left to right
13
||
Left to right
14
?:
Left to right
15
= += -= /= %=
Right to left
16
<<= >>=
Right to left

ที่มา : Gottfried, S. Byron, 1990 : 475.
        ตัวดำเนินการที่มีลำดับการทำงานอันดับที่ 1 จะทำงานก่อนอันดับที่ 2 โดยทำงานไปเรื่อย ๆ จนกระทั่งหมดตัวดำเนินการ ส่วนลักษณะการทำงานของตัวดำเนินการแต่ละอันดับนั้นแตกต่างกันไป ซึ่งจะเป็นการทำงานจากซ้ายไปขวา (left to rigth) หรือขวาไปซ้าย (rigth to left) ก็ได้

ตัวอย่างที่ 2.5 แสดงขั้นตอนการทำงานของตัวดำเนินการ

8 + 5 * 3
4 +15
19
ตัวดำเนินการ * อยู่ลำดับสูงกว่าตัวดำเนินการ + จึงต้องคูณเลขก่อนแล้วทำการบวกเลขทีหลัง




10 / 2 + 5 – 3
5 + 5 – 3
10 - 3
7
ตัวดำเนินการ / อยู่ลำดับสูงกว่าตัวดำเนินการ + และ - ส่วนตัวดำเนินการ + และ - อยู่ลำดับเดียวกัน แต่ให้ทำจากซ้ายไปขวา จึงทำบวกก่อนแล้วจึงทำลบ


9 * 3 - 20 / 5 + 6
27 - 4 + 6
23 + 6
29
ตัวดำเนินการ * และ / อยู่ลำดับเดียวกันให้ทำจากซ้ายไปขวา คือ คูณเลขก่อน แล้วหารเลข ส่วนตัวดำเนินการ - และ + อยู่ลำดับเดียวกันให้ทำจากซ้ายไปขวา คือ ลบเลขก่อนแล้วจึงบวกทีหลัง

ไม่มีความคิดเห็น:

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

มุมแซตมันๆ คับผม