พอยน์เตอร์ค่าเดียวด้วย *T
ชี้ไปยังค่าหนึ่งค่าโดยเฉพาะ
พอยน์เตอร์ค่าเดียวด้วย *T เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
พอยน์เตอร์ชี้ไปยังตำแหน่ง
พอยน์เตอร์เก็บที่อยู่ของค่าซึ่งอยู่ที่อื่นในหน่วยความจำ แทนที่จะเก็บตัวค่าเอง 📍
ชนิด *T
พอยน์เตอร์ไปยังรายการเดียวมีชนิดเป็น *T โดย T คือสิ่งที่พอยน์เตอร์ชี้ไป ดังนั้น *i32 จึงหมายถึงพอยน์เตอร์ที่ชี้ไปยังค่า i32 หนึ่งค่า
var p: *i32 = undefined;รับที่อยู่
ใช้ตัวดำเนินการ &หน้าตัวแปรเพื่อรับพอยน์เตอร์ไปยังตัวแปรนั้น ผลลัพธ์คือที่อยู่ซึ่งจัดเก็บค่านั้น
var x: i32 = 10;
const p = &x;ค่าเดียวเท่านั้น
พอยน์เตอร์แบบ รายการเดียวรับประกันว่าชี้ไปยังค่าหนึ่งค่าเท่านั้น ไม่ใช่อาร์เรย์ คอมไพเลอร์จะติดตามเรื่องนี้ให้คุณ
พอยน์เตอร์มีขนาด
พอยน์เตอร์เป็นเพียงที่อยู่ ดังนั้นขนาดของมันจึงเท่ากับเวิร์ดของเครื่อง ไม่ใช่ขนาดของ T แม้จะชี้ไปยังโครงสร้างขนาดใหญ่ก็ใช้เพียงหนึ่ง ที่อยู่
เปลี่ยนแปลงได้โดยปริยาย
*Tธรรมดาอนุญาตให้คุณอ่านและเขียนค่าที่พอยน์เตอร์ชี้ไปได้ ภายหลังคุณจะเพิ่ม const เพื่อทำให้เป็นแบบอ่านอย่างเดียว
var n: i32 = 1;
const p: *i32 = &n;พอยน์เตอร์ใช้ร่วมกัน ไม่ใช่คัดลอก
การส่ง พอยน์เตอร์ให้ฟังก์ชันเป็นการใช้ค่าต้นฉบับร่วมกัน ดังนั้นการเปลี่ยนแปลงผ่านพอยน์เตอร์จึงมองเห็นได้จากผู้เรียก
fn bump(p: *i32) void {
p.* += 1;
}ที่อยู่ของ const
การใช้ &x กับ const จะให้ค่า *const i32 เพราะ Zig ไม่อนุญาตให้คุณเขียนผ่านพอยน์เตอร์ไปยังข้อมูลที่เปลี่ยนแปลงไม่ได้
const x: i32 = 5;
const p = &x;พอยน์เตอร์ไม่มีวันเป็น Null
พอยน์เตอร์ Zig ทั่วไป ไม่มีวันเป็น null หากค่าอาจไม่มีอยู่ คุณต้องใช้พอยน์เตอร์แบบเลือกได้ เช่น ?*T
การอนุมานชนิดช่วยได้
เมื่อเขียน const p = &x, Zig จะ อนุมานชนิดของพอยน์เตอร์จาก x ดังนั้นคุณจึงแทบไม่ต้องเขียน *i32 ด้วยตนเอง
var score: u8 = 42;
const p = &score;เหตุผลที่ใช้พอยน์เตอร์
พอยน์เตอร์ช่วยให้คุณแก้ไขค่าโดยตรงและหลีกเลี่ยงการคัดลอกข้อมูลขนาดใหญ่ ซึ่งเป็นหัวใจของการควบคุมระดับล่างแบบ ชัดเจนของ Zig
ตรวจสอบอย่างรวดเร็ว
คุณต้องการให้ฟังก์ชันเปลี่ยนตัวแปรของผู้เรียก พารามิเตอร์ควรมีชนิดใด
สรุป
พอยน์เตอร์แบบรายการเดียว *T เก็บที่อยู่ของค่าหนึ่งค่าโดยเฉพาะ รับค่าด้วย &, ไม่มีวันเป็น null และช่วยให้ใช้ข้อมูลร่วมกันแทนการคัดลอก 🎯
คำถามที่พบบ่อย
บทเรียน “พอยน์เตอร์ค่าเดียวด้วย *T” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พอยน์เตอร์ค่าเดียวด้วย *T” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พอยน์เตอร์ค่าเดียวด้วย *T”
ชี้ไปยังค่าหนึ่งค่าโดยเฉพาะ คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พอยน์เตอร์ค่าเดียวด้วย *T” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พอยน์เตอร์ค่าเดียวด้วย *T
- การถอดการอ้างอิงด้วย ptr.*
- พอยน์เตอร์หลายค่าด้วย [*]T
- พอยน์เตอร์ค่าคงที่และการจัดแนว