อะไรคือความแตกต่างระหว่าง * และตัวดำเนินการ & ในการเขียนโปรแกรม C

Xari Khux Khwam Taek Tang Rahwang Laea Taw Danein Kar Ni Kar Kheiyn Porkaerm C



ตัวดำเนินการถูกใช้เพื่อดำเนินการกับตัวแปรและมีประโยชน์มากสำหรับโปรแกรมเมอร์ในการดำเนินการ เช่น รูปแบบทางคณิตศาสตร์ ความสัมพันธ์ และตรรกะ ในภาษา C เรามีฟังก์ชันในตัวหลายประเภทที่ใช้เพื่อทำงานเฉพาะด้วยความช่วยเหลือของตัวดำเนินการเครื่องหมายเดียว

ในแนวทางนี้ เราจะเห็นความแตกต่างระหว่าง * และ & ตัวดำเนินการในการเขียนโปรแกรมภาษาซี

* ตัวดำเนินการในซี

เดอะ * ตัวดำเนินการเป็นหนึ่งในตัวดำเนินการที่ใช้กันอย่างแพร่หลายในภาษาการเขียนโปรแกรม C ที่ใช้ในการดึงค่าของตัวชี้ เรายังตั้งชื่อ * โอเปอเรเตอร์เป็น dereference-operator เมื่อใช้โอเปอเรเตอร์นี้ คุณจะสามารถเข้าถึงข้อมูลที่จัดเก็บไว้ในหน่วยความจำได้อย่างง่ายดายโดยใช้ตัวชี้ที่อยู่ หากคุณใช้ในโปรแกรม คุณต้องเริ่มต้นพอยน์เตอร์ซึ่งชี้ไปยังแอดเดรสเพื่อให้สามารถดึงค่าที่เก็บไว้ในพอยน์เตอร์แอดเดรสได้อย่างง่ายดาย







& โอเปอเรเตอร์ในซี

& ในทางกลับกันตัวดำเนินการใช้เพื่อส่งคืนที่อยู่ของตัวถูกดำเนินการในตำแหน่งหน่วยความจำ ด้วยตัวดำเนินการ & คุณสามารถรับที่อยู่ของตัวแปรซึ่งอ้างถึงในตำแหน่งหน่วยความจำได้อย่างง่ายดาย หากต้องการดูที่อยู่ของตัวแปรประเภทข้อมูลใดๆ คุณจะต้องระบุชื่อตัวแปรด้วยเครื่องหมาย &-operator



ตัวอย่าง

ด้านล่างนี้คือตัวอย่างบางส่วนของโปรแกรม C ที่ใช้ * ผู้ประกอบการ, & ตัวดำเนินการและการรวมกันของทั้งสองอย่าง



ตัวอย่างที่ 1: โปรแกรมใช้ (*) ตัวดำเนินการ

#รวม

นานาชาติ หลัก ( ) {
นานาชาติ = 5 ;
นานาชาติ * หน้า = & ;
พิมพ์ฉ ( 'ค่าของ A คือ %d \n ' , * หน้า ) ;
กลับ 0 ;
}

รหัสเริ่มต้นตัวแปร ด้วยค่า 5 ก็จะประกาศตัวแปรประเภทพอยน์เตอร์ให้มีแอดเดรสของหน่วยความจำบางส่วน และในฟังก์ชัน printf จะแสดงค่าแอดเดรส ซึ่งก็คือ 5





เอาต์พุต



ตัวอย่างที่ 2: โปรแกรมใช้ (&) ตัวดำเนินการ

#รวม

นานาชาติ หลัก ( )
{
นานาชาติ var1 = 1,000 ;
นานาชาติ var2 ;
var2 = & var1 ;
พิมพ์ฉ ( ' ที่อยู่ตำแหน่งหน่วยความจำของ var2 คือ %i' var2 ) ;
กลับ 0 ;
}

ในโค้ดข้างต้น อันดับแรก มีตัวแปรจำนวนเต็ม var1 ที่มีค่าเป็น 1,000 มีตัวแปรอีกตัว var2 ที่ใช้ที่อยู่ของตัวแปร var1 . จากนั้นพิมพ์ที่อยู่โดยใช้ %ฉัน ตัวระบุรูปแบบ

เอาต์พุต

ตัวอย่างที่ 3: โปรแกรมใช้ทั้งตัวดำเนินการ & และ *

#รวม
นานาชาติ หลัก ( ) {
นานาชาติ อ่า = 5 , บีบี ;
นานาชาติ * หน้า ;
หน้า = & อ่า ;
BB = * หน้า ;
พิมพ์ฉ ( '----- ที่อยู่ของ aa คือ 0x%x \n -----' , & อ่า ) ;
พิมพ์ฉ ( '----- ที่อยู่ของ-bb คือ 0x%x \n -----' , & BB ) ;
พิมพ์ฉ ( '----- ค่าของ pp คือ 0x%x \n -----' หน้า ) ;
พิมพ์ฉ ( '--------- ตอนนี้ค่าของ aa คือ %d \n -----' , อ้า ) ;
พิมพ์ฉ ( '------- ค่าของ *pp is %d \n -----' , * หน้า ) ;
พิมพ์ฉ ( '-----ค่าของ bb คือ: %d----' , บีบี ) ;
กลับ 0 ;
}

ในโค้ด C ด้านบน ตัวแปรจำนวนเต็มอย่างง่ายสองตัวถูกเตรียมใช้งาน และตัวแปรประเภทตัวชี้หนึ่งตัว *pp จากนั้นเรากำหนดที่อยู่ aa ให้กับ pp และยกเลิกการอ้างอิงค่าอีกครั้งด้วยตัวแปร bb ในตอนท้าย เราพิมพ์ค่าทั้งหมดโดยใช้ฟังก์ชัน printf

เอาต์พุต

บทสรุป

ตัวดำเนินการมีบทบาทสำคัญอย่างมากในภาษาโปรแกรม ในบทความนี้ เราได้กล่าวถึงตัวดำเนินการสองตัวที่ทำงานกับตัวถูกดำเนินการเพียงตัวเดียว และใช้เพื่อเพิ่มประสิทธิภาพการทำงานของโค้ดในภาษาโปรแกรม C ทั้งคู่ * และ & ตัวดำเนินการอนุมานความหมายและฟังก์ชันการทำงานเป็น * ใช้สำหรับ 'คืนค่าตัวแปร' ในขณะที่ & มีไว้สำหรับ 'การจัดการค่าในเวลาทำงานโดยรับที่อยู่หน่วยความจำ'