C Operator Precedence และ Associatetivity คืออะไร

C Operator Precedence Laea Associatetivity Khux Xari



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

บทความนี้มีบทช่วยสอนที่ครอบคลุมเพื่อช่วยคุณในการเรียนรู้เกี่ยวกับการเชื่อมโยงและลำดับความสำคัญของตัวดำเนินการใน 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

เอาต์พุต

บทสรุป

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