สวัสดีและยินดีต้อนรับกลับ
ฉันต้องการพูดเล็กน้อยเกี่ยวกับตัวชี้ความว่างเปล่าในการบรรยายนี้
เรารู้ว่าโมฆะคืออะไรเพราะเราใช้คีย์เวิร์ดนี้เมื่อเราพูดถึงฟังก์ชัน
โดยหลักแล้ว หากเราไม่ต้องการส่งคืนข้อมูลใดๆ จากฟังก์ชัน เราจะใช้
void เป็นส่วนหนึ่งของลายเซ็นฟังก์ชัน แล้วเมื่อเราใช้ตัวชี้การหลีกเลี่ยง สิ่งนี้หมายความว่าอย่างไร
ชื่อประเภทเป็นโมฆะหมายถึงไม่มีประเภทใด
ดังนั้นตัวชี้ของประเภท void star สามารถมีที่อยู่ของรายการข้อมูลประเภทใดก็ได้ ดังนั้นจึงมีความยืดหยุ่นมาก
ถ้าคุณไม่รู้ว่าจะเก็บอะไรเป็นตัวชี้ คุณสามารถพูดว่า
void star ค่อนข้างดี มักใช้ในฟังก์ชันสำหรับพารามิเตอร์ฟังก์ชัน
ดังนั้น void star จึงมักถูกใช้เป็นประเภทพารามิเตอร์หรือชนิดส่งคืนพร้อมฟังก์ชัน
ซึ่งจัดการกับข้อมูลในรูปแบบอิสระ
ดังนั้นคุณจึงสามารถให้ฟังก์ชันของคุณมีความยืดหยุ่นมากขึ้นหากต้องใช้ตัวชี้ดาวเป็นโมฆะ
โดยพื้นฐานแล้วหมายความว่าฟังก์ชันของคุณสามารถรับตัวแปรได้มากกว่าหนึ่งประเภท
ยกเว้นว่ามันไม่ยืดหยุ่นอย่างสมบูรณ์เพราะคุณต้องโยนมันออกไปเมื่อคุณไม่สนใจมัน
ดังนั้นพอยน์เตอร์ชนิดใดๆ ก็สามารถส่งต่อเป็นค่าของประเภท โมฆะ ประเภทใดก็ได้
โมฆะพอยน์เตอร์ไม่รู้ว่ามันชี้ไปที่วัตถุประเภทใด
ดังนั้นคุณจึงไม่สามารถเพิกเฉยต่อมันได้โดยตรง
และนั่นคือจุดที่อาการสะอึกเกิดขึ้นจริงพร้อมกับดาวที่ว่างเปล่า
เหมาะอย่างยิ่งสำหรับความยืดหยุ่นที่ยาวนานสำหรับประเภทข้อมูลต่างๆ แต่คุณสามารถใช้ได้ก็ต่อเมื่อคุณทราบประเภทข้อมูลเท่านั้น
ดังนั้นคุณต้องระบุตัวชี้อย่างชัดเจนเมื่อคุณไม่สนใจมัน
ที่อยู่ของตัวแปรประเภท int สามารถเก็บไว้ในตัวแปรตัวชี้ของประเภท void เนื่องจาก
void star หมายความว่าข้อมูลประเภทใดก็ตามสามารถเก็บไว้ภายในนั้นได้
ดังนั้นเมื่อคุณต้องการเข้าถึงค่าช่วงตามที่อยู่ที่เก็บไว้ในตัวชี้ดาว
void คุณต้องส่งไปยังตัวชี้ประเภท int ก่อน
ในตัวอย่างนี้ เราจะมาดูกันว่าคุณใช้งานตัวชี้ดาว void อย่างไร
เรามีตัวแปรสามตัวที่เรากำหนด หนึ่งจำนวนเต็ม และทศนิยม และอักขระหนึ่งตัว
ตอนนี้เรากำลังจะสร้างตัวชี้ดาวว่างเปล่า
เนื่องจากตัวชี้เป็นแบบโมฆะ เราจึงสามารถกำหนดที่อยู่ของ
i ซึ่งเป็น int ได้ เราสามารถกำหนด address ของ
f ซึ่งเป็น float และเราสามารถกำหนด address ของ character
หรือ ch ที่เป็น character ได้
ปัญหาเดียวคือเมื่อคุณละเลย คุณต้องรู้ประเภทนั้น แต่คุณยังคงเห็นข้อดีที่นี่
ข้อได้เปรียบที่นี่คือ เราต้องสร้างตัวแปรประเภทเดียวเท่านั้น และเราสามารถจัดเก็บที่อยู่ที่แตกต่างกันได้หลายรายการ
แต่เมื่อใดก็ตามที่คุณต้องการใช้มัน คุณต้องใช้มันในสตาร์
และคุณจะเห็นที่นี่เมื่อเราพิมพ์ข้อมูล ว่าดาวในกำลังชี้ตัวชี้ จากนั้นเรากำลังยกเลิกการอ้างอิง
ดาวที่อยู่นอกวงเล็บในวงเล็บกำลังยกเลิกการอ้างอิง
นั่นคือจะพิมพ์ค่าที่
v pointer ชี้ไป แต่ก่อนอื่น มันจะส่งไปยังประเภทที่ถูกต้อง
ดังนั้นในพอยน์เตอร์ v ทั้งสามตัวนี้ มันจะพิมพ์ออกมาหามดที่จะพิมพ์ออกมา 10
สำหรับทุ่นก็จะดึงออกมา 2. 34.
และสำหรับ ch, ถ่าน มันจะพิมพ์ k
เราจะเห็นว่าตัวชี้โมฆะใช้มากขึ้นในพารามิเตอร์ฟังก์ชันอย่างที่ฉันพูดในประเภทการส่งคืน
และนั่นคือคุณค่าที่แท้จริงเมื่อนำมาใช้และเช่นเดียวกับการใช้ตัวชี้ดาวว่างในการประกาศเพียงครั้งเดียวและกำหนดประเภทข้อมูลต่างๆ
มากมาย ขอขอบคุณ.