ตัวดำเนินการมอบหมายที่ใช้บ่อยที่สุดคือ = นอกจากนี้ ตัวดำเนินการไบนารียังรวมถึง
ผู้ประกอบการที่ได้รับมอบหมาย มีระดับความสำคัญต่ำที่สุดเมื่อเทียบกับตัวดำเนินการอื่นๆ และเชื่อมโยงจากขวาไปซ้าย ตัวดำเนินการมอบหมายจะใช้ในภาษาคอมพิวเตอร์ C เพื่อจัดสรรตัวแปรตามค่าของมัน ภาษารองรับตัวดำเนินการที่หลากหลาย รวมถึงเลขคณิต เชิงสัมพันธ์ ระดับบิต การมอบหมาย ฯลฯ ในการกำหนดค่า ตัวแปร หรือวิธีการให้กับตัวแปรอื่น ให้ใช้ตัวดำเนินการมอบหมาย พารามิเตอร์ด้านซ้ายของตัวดำเนินการกำหนดคือตัวแปร และพารามิเตอร์ด้านขวาคือค่า เพื่อป้องกันคำเตือนจากคอมไพเลอร์ รายการทางด้านซ้ายต้องเป็นประเภทข้อมูลเดียวกับรายการทางด้านขวา มาพูดถึงตัวดำเนินการมอบหมายต่างๆ กัน ได้แก่ =, +=, -=, /=, *= และ %=”
รูปแบบ
ในตัวอย่างด้านล่าง เรามีตัวอย่างของตัวดำเนินการกำหนดที่ง่ายที่สุดในการเขียนโปรแกรม C ซึ่งเราเพียงแค่กำหนดค่าตัวเลขให้กับจำนวนเต็ม ซึ่งจะช่วยให้เราอธิบายรูปแบบทั่วไปของผู้ปฏิบัติงานที่ได้รับมอบหมายได้
ตัวอย่าง # 01
ตัวอย่างแรกคือตัวดำเนินการกำหนดอย่างง่าย โดยใช้ตัวดำเนินการ ตัวถูกดำเนินการที่เหมาะสมจะถูกกำหนดให้กับตัวถูกดำเนินการทางซ้ายใหม่ มีโอเปอเรเตอร์การกำหนดที่ตรงไปตรงมาเพียงตัวเดียว “=”. ตัวถูกดำเนินการทางซ้าย = ตัวถูกดำเนินการทางขวาคือรูปแบบทั่วไป จำนวนเต็ม “a” (ตัวถูกดำเนินการทางซ้ายของตัวดำเนินการกำหนดอย่างง่าย) ถูกกำหนดจำนวน 5 ในกรณีภายใต้ (ตัวถูกดำเนินการทางขวาของตัวดำเนินการกำหนดอย่างง่าย) เช่นเดียวกันสำหรับ b เช่นเดียวกับ c โดยที่ c ได้รับผลรวมของ 'a' และ 'b' ผลลัพธ์สุดท้ายคือ c=10 ซึ่งหมายความว่า c ได้รับการกำหนดค่า 10 ด้วยความช่วยเหลือของโอเปอเรเตอร์นี้
ตัวอย่าง # 02
ตัวอย่างที่สองคือตัวดำเนินการกำหนดแบบผสมตัวแรกที่เรียกว่าตัวดำเนินการกำหนดเพิ่มเติม “+=” ลองนึกภาพรุ่นที่ง่ายกว่ามากที่จะเข้าใจสิ่งนี้ พิจารณา: a = a + 5 . สิ่งที่เราทำคือเพิ่ม 5 ให้กับตัวแปร เอ แล้วผลลัพธ์ใด ๆ ที่ได้รับมอบหมายให้กับตัวแปร เอ . ในทำนองเดียวกันสิ่งที่สาย a += b ที่ทำอยู่คือการเพิ่ม ข สู่ความคุ้มค่า เอ แล้วกำหนดผลลัพธ์ให้กับตัวแปร เอ . ตัวแปร b ยังคงไม่เปลี่ยนแปลง (b=10) เนื่องจากไม่มีการเปลี่ยนแปลงค่า เฉพาะตัวแปร เอ' s มีค่าเพิ่มขึ้นโดยการเพิ่มมูลค่าของ ข ด้วยความช่วยเหลือของ += เราได้พบ เอ ที่ได้รับมอบหมายด้วยค่า 15
ตัวอย่าง #03
ตัวอย่างที่สามคือตัวดำเนินการกำหนดการลบ “-=” ในโอเปอเรเตอร์นี้ ตัวถูกดำเนินการทางขวาจะถูกลบออกจากตัวถูกดำเนินการทางซ้าย แล้วจึงเท่ากับตัวถูกดำเนินการทางซ้าย มันก็เหมือนกับว่า a = a – 5 . ที่นี่เราลบ 5 จาก เอ แล้วกำหนดให้ a. ในทำนองเดียวกันรหัสด้านล่างแสดงว่า ข (มีค่า 10) กำลังถูกลบออกจาก เอ (มีค่า 15) แล้วกำหนดผลเป็น เอ (ทำให้มีค่า 5) คุณค่าของ ข ยังคงไม่เปลี่ยนแปลงเนื่องจากตัวดำเนินการกำหนดค่าให้กับตัวถูกดำเนินการทางขวาเท่านั้น โดยปล่อยให้ค่าของตัวถูกดำเนินการทางซ้ายเหมือนเดิม
ตัวอย่าง # 04
ตัวอย่างที่สี่คือตัวดำเนินการมอบหมายการคูณ “*=” ตัวถูกดำเนินการหลักถูกคูณด้วยอาร์กิวเมนต์ด้านซ้าย แล้วจับคู่กับตัวถูกดำเนินการทางซ้ายโดยใช้ตัวดำเนินการนี้ รูปแบบระดับต่ำที่ง่ายกว่านี้ก็จะเป็น a = เป็ * 5 โดยที่ค่าของตัวแปร เอ คูณด้วยค่า 5 แล้วจึงกำหนดผลลัพธ์ให้กับค่า เอ ตัวเอง. ในทำนองเดียวกัน ตัวอย่างด้านล่างแสดงให้เห็นว่าตัวแปร เอ (ตัวถูกดำเนินการทางซ้าย) ที่มีค่า 15 ถูกกำหนดผลลัพธ์ของการคูณค่าของ ข (ตัวถูกดำเนินการทางขวา) ซึ่งเท่ากับ 10 มีค่าเท่ากับ เอ ; ดังนั้นทำให้ผลลัพธ์สุดท้าย 150 ถูกกำหนดให้กับตัวแปร เอ . อีกครั้งค่าของตัวแปร ข ยังคงไม่เปลี่ยนแปลง
ตัวอย่าง # 05
ตัวอย่างต่อไปเรียกว่า ดิวิชั่น Assignment Operator “/=” โอเปอเรเตอร์นี้อนุญาตให้โอเปอเรเตอร์ด้านซ้ายเท่ากับผลลัพธ์ของการแบ่งตัวถูกดำเนินการทางซ้ายด้วยตัวถูกดำเนินการทางขวา มันก็เหมือนกับว่า a = เป็ / 5. ที่นี่เราแบ่ง เอ ภายใน 5 แล้วมอบหมายให้ เอ . ในทำนองเดียวกันรหัสด้านล่างแสดงว่า ข (มีค่า 10) หาร เอ (มีค่า 50) แล้วจึงกำหนดผลเป็น เอ (ทำให้มีค่า 5) ค่าของตัวแปร ข ยังคงไม่เปลี่ยนแปลงเนื่องจากตัวดำเนินการหาร เช่นเดียวกับตัวดำเนินการมอบหมายใดๆ จะกำหนดค่าให้กับตัวถูกดำเนินการทางขวาเท่านั้น โดยที่ค่าของตัวถูกดำเนินการทางซ้ายยังคงเหมือนเดิม
ตัวอย่าง # 06
ตัวอย่างที่หกและสุดท้ายคือโอเปอเรเตอร์ที่เรียกว่า Modulus Assignment Operator “%=” โอเปอเรเตอร์นี้กำหนดค่าตัวถูกดำเนินการทางซ้ายที่ได้รับจากการใช้โมดูโลของตัวถูกดำเนินการทางซ้ายและตัวถูกดำเนินการทางขวา เส้น %= b เท่ากับว่า a = % b , ที่ไหน ข สามารถเก็บค่าใด ๆ ได้เช่นกัน ในตัวอย่างด้านล่าง ข เก็บค่า 10 ผ่านตัวดำเนินการมอบหมายอย่างง่าย และ เอ ถือ 55 จากนั้นตัวดำเนินการกำหนดโมดูลัสจะค้นหาส่วนที่เหลือของโมดูลัสของ เอ และ ข ซึ่งเท่ากับ 5 ในกรณีนี้ และกำหนดให้กับตัวถูกดำเนินการทางซ้าย “ ก. ตามปกติ ตัวถูกดำเนินการที่ถูกต้อง” ข ” จะไม่เปลี่ยนแปลงด้วยค่า 10 เนื่องจากไม่ได้กำหนดค่าอื่น
บทสรุป
เพื่อกำหนดผลลัพธ์ของนิพจน์ให้กับตัวแปร เป็นทางเลือกที่ดีในการใช้ตัวดำเนินการมอบหมาย ในภาษาการเขียนโปรแกรม C มีโอเปอเรเตอร์การมอบหมายสองแบบที่แตกต่างกัน เครื่องหมาย “=” เป็นตัวดำเนินการกำหนดพื้นฐาน นอกจากนี้ ตัวดำเนินการ Compound Assignment ยังใช้งานง่ายและขจัดความจำเป็นในการเขียนซ้ำๆ ในส่วนของตัวถูกดำเนินการทางซ้าย ภาษาโปรแกรมอื่นๆ เช่น C++ ก็ทำงานในลักษณะเดียวกันเช่นกัน เราได้นำตัวอย่างตัวดำเนินการมอบหมายประเภทต่างๆ มาใช้ในภาษาการเขียนโปรแกรม C หลายตัวอย่างในบทความนี้