ความแตกต่างระหว่างตัวชี้และการอ้างอิง

ผู้เขียน: Laura McKinney
วันที่สร้าง: 1 เมษายน 2021
วันที่อัปเดต: 5 พฤษภาคม 2024
Anonim
What is the Difference Between a Pointer and a Reference C++
วิดีโอ: What is the Difference Between a Pointer and a Reference C++

เนื้อหา


ทั้ง“ ตัวชี้” และ“ การอ้างอิง” ใช้เพื่อชี้หรืออ้างอิงตัวแปรอื่น แต่ความแตกต่างพื้นฐานระหว่างทั้งคู่ก็คือตัวแปรตัวชี้จะชี้ไปที่ตัวแปรที่มีการเก็บตำแหน่งหน่วยความจำไว้ ตัวแปรอ้างอิงเป็นนามแฝงสำหรับตัวแปรที่กำหนดให้กับมัน แผนภูมิเปรียบเทียบด้านล่างสำรวจความแตกต่างอื่น ๆ ระหว่างตัวชี้และการอ้างอิง

  1. แผนภูมิเปรียบเทียบ
  2. คำนิยาม
  3. ความแตกต่างที่สำคัญ
  4. ข้อสรุป

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบชี้การอ้างอิง
ขั้นพื้นฐานตัวชี้คือที่อยู่หน่วยความจำของตัวแปรการอ้างอิงเป็นนามแฝงสำหรับตัวแปร
ผลตอบแทนตัวแปรพอยน์เตอร์จะคืนค่าที่อยู่ที่เก็บไว้ในตัวแปรพอยน์เตอร์ซึ่งนำหน้าด้วยเครื่องหมายพอยต์ *ตัวแปรอ้างอิงส่งคืนที่อยู่ของตัวแปรที่อยู่ข้างหน้าด้วยเครื่องหมายอ้างอิง &
ผู้ประกอบการ *, ->&
การอ้างอิง Nullตัวแปรตัวชี้สามารถอ้างถึง NULLตัวแปรอ้างอิงไม่สามารถอ้างถึง NULL
การเริ่มต้น สามารถสร้างตัวชี้แบบไม่มีการเริ่มต้นไม่สามารถสร้างการอ้างอิงแบบไม่มีการกำหนดค่าเริ่มต้นได้
เวลาเริ่มต้นตัวแปรตัวชี้สามารถเริ่มต้น ณ เวลาใดก็ได้ในโปรแกรมตัวแปรอ้างอิงสามารถเริ่มต้นได้ในเวลาที่สร้างเท่านั้น
เตรียมใช้งานใหม่ตัวแปรตัวชี้สามารถเริ่มต้นใหม่ได้หลายครั้งตามที่ต้องการตัวแปรอ้างอิงไม่สามารถเริ่มต้นใหม่อีกครั้งในโปรแกรม


ความหมายของตัวชี้

“ ตัวชี้” เป็นตัวแปรที่เก็บตำแหน่งหน่วยความจำของตัวแปรอื่น ตัวดำเนินการที่ใช้โดยตัวแปรพอยน์เตอร์คือ * และ -> การประกาศตัวแปรตัวชี้ประกอบด้วยชนิดข้อมูลพื้นฐานตามด้วยเครื่องหมาย ‘*’ และชื่อตัวแปร

พิมพ์ * var_name;

ให้เราเข้าใจตัวชี้ด้วยความช่วยเหลือของตัวอย่าง

int a = 4; int * ptr = & a; ศาล <ในขณะที่ผู้ประกอบการอ้างอิงคือ &.

  • ตัวชี้ตัวแปรหากไม่มีที่อยู่ของตัวแปรชี้ไปที่เป็นโมฆะ ตัวแปรอ้างอิงไม่สามารถอ้างถึง Null ได้
  • คุณสามารถสร้างตัวแปรตัวชี้ unitialized แต่เราสร้างการอ้างอิงเมื่อเราต้องการนามแฝงของตัวแปรบางอย่างเพื่อให้คุณไม่สามารถสร้างการอ้างอิง unitialize
  • คุณสามารถเริ่มต้นตัวชี้ใหม่ได้ แต่เมื่อคุณเริ่มต้นใหม่จะไม่สามารถเริ่มต้นอีกครั้งได้
  • คุณสามารถสร้างตัวชี้ที่ว่างเปล่าและเริ่มต้นได้ตลอดเวลา แต่คุณต้องเริ่มต้น refrence เฉพาะเมื่อคุณสร้างการอ้างอิง
  • บันทึก:

    Java ไม่รองรับพอยน์เตอร์

    ข้อสรุป

    ตัวชี้และการอ้างอิงทั้งสองจะใช้ในการชี้หรืออ้างอิงตัวแปรอื่น แต่ทั้งคู่ต่างกันในการใช้งานและการนำไปใช้งาน