0Pricing
Zig Academy · บทเรียน

พอยน์เตอร์ค่าเดียวด้วย *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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พอยน์เตอร์ค่าเดียวด้วย *T
  2. การถอดการอ้างอิงด้วย ptr.*
  3. พอยน์เตอร์หลายค่าด้วย [*]T
  4. พอยน์เตอร์ค่าคงที่และการจัดแนว
← กลับไปที่ Zig Academy