บทความนี้มีบทช่วยสอนที่ครอบคลุมเพื่อช่วยคุณในการเรียนรู้เกี่ยวกับการเชื่อมโยงและลำดับความสำคัญของตัวดำเนินการใน C
ลำดับความสำคัญของตัวดำเนินการใน C
ลำดับความสำคัญของตัวดำเนินการ อธิบายลำดับที่ตัวดำเนินการหลายตัวได้รับการประเมินในขณะที่ประเมินนิพจน์ ตัวอย่างเช่น หากนิพจน์มีทั้งตัวดำเนินการการบวกและการคูณ ควรหาค่าใดก่อน คำตอบนั้นง่าย C ปฏิบัติตามกฎบางอย่างเพื่อแก้ไขความกำกวมดังกล่าว หรือที่เรียกกันทั่วไปว่า ลำดับความสำคัญของตัวดำเนินการ . ใน C, ลำดับความสำคัญของตัวดำเนินการ แบ่งออกเป็น 17 ระดับ ตั้งแต่ตัวดำเนินการเอกฐานไปจนถึงตัวดำเนินการเงื่อนไขแบบไตรภาค ตัวดำเนินการที่ใช้ส่วนใหญ่ เช่น ตัวดำเนินการเลขคณิต ตัวดำเนินการเชิงสัมพันธ์ ตัวดำเนินการเชิงตรรกะ และตัวดำเนินการระดับบิต เป็นไปตามมาตรฐาน C ลำดับความสำคัญของตัวดำเนินการ มาตรการ.
ลำดับความสำคัญ กฎกำหนดว่าตัวดำเนินการใดมีลำดับความสำคัญสูงกว่าตัวดำเนินการอื่นๆ เมื่อประเมินนิพจน์ ตัวดำเนินการหลายประเภทในภาษาโปรแกรมซีมีระดับที่แตกต่างกันไป ลำดับความสำคัญ . ตัวอย่างเช่น ตัวดำเนินการเอกฐานมีลำดับความสำคัญมากกว่าตัวดำเนินการไบนารี ต่อไปนี้คือรายการของตัวดำเนินการที่เรียงลำดับจากน้อยไปหามาก ลำดับความสำคัญ :
โอเปอเรเตอร์ | ความหมายของตัวดำเนินการ | ความเชื่อมโยง |
() [] -> . |
ฟังก์ชั่นการโทร การอ้างอิงองค์ประกอบอาร์เรย์ การเลือกสมาชิกทางอ้อม การเลือกสมาชิกโดยตรง |
ซ้ายไปขวา |
! ~ + – ++ — & * ขนาดของ (พิมพ์) |
การปฏิเสธเชิงตรรกะ ส่วนเสริม Bitwise (1's) อูนารีพลัส ยูนารี ลบ เพิ่มขึ้น ลดลง อ้างอิง (ที่อยู่) การอ้างอิงตัวชี้ ส่งกลับขนาดของวัตถุ Typecast (การแปลง) |
จากขวาไปซ้าย |
* / % |
คูณ แบ่ง ส่วนที่เหลือ |
ซ้ายไปขวา |
+ – |
ไบนารีบวก (เพิ่มเติม) เลขฐานสองลบ (ลบ) |
ซ้ายไปขวา |
<< >> |
กะซ้าย กะขวา |
ซ้ายไปขวา |
< <= > >= |
น้อยกว่า น้อยกว่าหรือเท่ากับ มากกว่า มากกว่าหรือเท่ากับ |
ซ้ายไปขวา |
== != |
เท่ากับ ไม่เท่ากับ |
ซ้ายไปขวา |
& | ในระดับบิตและ | ซ้ายไปขวา |
^ | Bitwise พิเศษหรือ | ซ้ายไปขวา |
| | ในระดับบิตหรือ | ซ้ายไปขวา |
&& | ตรรกะและ | ซ้ายไปขวา |
|| | ตรรกะหรือ | ซ้ายไปขวา |
?: | ตัวดำเนินการแบบมีเงื่อนไข | จากขวาไปซ้าย |
= *= /= %= += -= &= ^= |= <<= >>= |
การมอบหมายงานง่ายๆ กำหนดผลิตภัณฑ์ กำหนดผลหาร กำหนดส่วนที่เหลือ กำหนดผลรวม กำหนดความแตกต่าง กำหนดระดับบิต AND กำหนด XOR ระดับบิต กำหนดระดับบิต OR กำหนดกะซ้าย กำหนดกะขวา |
จากขวาไปซ้าย |
, | ตัวแยกนิพจน์ | ซ้ายไปขวา |
กฎเหล่านี้จะแนะนำคอมไพเลอร์เกี่ยวกับวิธีประเมินนิพจน์ที่มีตัวดำเนินการหลายตัวในนิพจน์เดียวกัน ตัวอย่างเช่น ตัวดำเนินการคูณมีความสำคัญมากกว่าตัวดำเนินการการบวกในสมการ A + B * C ตาม ลำดับความสำคัญ กฎ. ดังนั้น คอมไพลเลอร์จะประเมินนิพจน์ B * C ก่อนเพิ่ม A ลงในผลลัพธ์
ลองดูตัวอย่างของ ลำดับความสำคัญของตัวดำเนินการ ผ่านรหัส.
#รวมนานาชาติ หลัก ( ) {
นานาชาติ ก = 43 , ข = สิบเอ็ด , ค = 16 , ง = 31 ;
นานาชาติ ผลลัพธ์ = ++ ก * ข -- + ค / -- ง ;
พิมพ์ฉ ( 'a = %d \n ' , ก ) ;
พิมพ์ฉ ( 'b = %d \n ' , ข ) ;
พิมพ์ฉ ( 'ค = %d \n ' , ค ) ;
พิมพ์ฉ ( 'd = %d \n ' , ง ) ;
พิมพ์ฉ ( 'ผลลัพธ์ = %d \n ' , ผลลัพธ์ ) ;
กลับ 0 ;
}
ตัวแปรสี่ตัว a, b, c และ d ถูกประกาศในโค้ดด้านบน และค่าเริ่มต้นของตัวแปรคือ 43, 11, 16 และ 31 ตามนั้น จากนั้นจึงใช้ตัวดำเนินการทางคณิตศาสตร์และการกำหนดตัวแปรต่างๆ กับตัวแปรเหล่านี้ในนิพจน์ นิพจน์จะเพิ่มค่าของ a โดยใช้ตัวดำเนินการเพิ่มล่วงหน้า ++a คูณผลลัพธ์ด้วยโอเปอเรเตอร์หลังลด b– แล้วบวกผลลัพธ์ลงในการหาร c ด้วยค่าก่อนลดของ d (ใช้ตัวดำเนินการลดค่าล่วงหน้า –d) ผลลัพธ์ของตัวแปรจะถูกใช้เพื่อเก็บผลลัพธ์ทั้งหมดของนิพจน์นี้
เอาต์พุต
ความเชื่อมโยงในซี
ความเชื่อมโยง หมายถึงลำดับที่ตัวดำเนินการได้รับการประเมินในระหว่างนิพจน์ที่มีความสำคัญเหมือนกัน ซ้ายไปขวาและขวาไปซ้าย การเชื่อมโยง เป็นการเชื่อมโยงสองรูปแบบใน C ถ้าตัวดำเนินการสองตัวมีเหมือนกัน ลำดับความสำคัญ จะถูกประเมินจากซ้ายไปขวาตามแนวคิดของซ้ายไปขวา การเชื่อมโยง . อย่างไรก็ตาม หากใช้ลำดับความสำคัญเดียวกัน ตัวดำเนินการจะถูกประเมินจากขวาไปซ้ายตามขวาไปซ้าย การเชื่อมโยง .
ตัวอย่างเช่น ตัวดำเนินการเพิ่ม ++ มีรูปแบบจากขวาไปซ้าย การเชื่อมโยง ซึ่งหมายถึงการเพิ่มขึ้น ผู้ประกอบการ ได้รับการประเมินหลังจากตัวแปร ในขณะที่ตรรกะและ ผู้ประกอบการ มีแบบซ้ายไปขวา การเชื่อมโยง ซึ่งหมายถึงการประเมินตัวดำเนินการจากซ้ายไปขวา
#รวมint หลัก () {
int = 6 , ข = 3 , ค = 2 ;
ผลลัพธ์ int = a * b / c;
พิมพ์f( 'ผลลัพธ์ = %d \n ' , ผลลัพธ์);
กลับ 0 ;
}
ตัวแปรสามตัว a, b และ c ถูกประกาศในรหัสนี้ และตัวแปรเหล่านี้เริ่มต้นเป็น 6, 3 และ 2 ตามลำดับ จากนั้นจะใช้การดำเนินการคูณและการหารกับตัวแปรเหล่านี้ในนิพจน์ การคูณและการหารจะเรียงลำดับจากซ้ายไปขวาในภาษาซี การเชื่อมโยง เนื่องจากมีลำดับความสำคัญเท่ากัน สิ่งนี้บ่งชี้ว่าการดำเนินการหารมาก่อน ตามด้วยการดำเนินการคูณเมื่อประเมินนิพจน์ a * b / c
เอาต์พุต
บทสรุป
ลำดับความสำคัญของตัวดำเนินการ และ การเชื่อมโยง เป็นแนวคิดที่สำคัญในการเขียนโปรแกรมภาษาซีที่ช่วยกำหนดลำดับการดำเนินการของนิพจน์ ผู้ประกอบการที่มีระดับสูงสุด ลำดับความสำคัญ มีการประเมินระดับก่อนและ การเชื่อมโยง กฎช่วยกำหนดลำดับเมื่อใช้ตัวดำเนินการหลายตัวที่มีลำดับความสำคัญเท่ากัน ความเข้าใจ ลำดับความสำคัญของตัวดำเนินการ และ การเชื่อมโยง เป็นสิ่งสำคัญในการออกแบบโปรแกรมที่ซับซ้อน และช่วยสร้างโค้ดที่สะอาดและมีประสิทธิภาพมากขึ้นโดยมีข้อผิดพลาดน้อยลง