Penunjuk Konstan dan Penyelarasan
Nyatakan akses hanya-baca dan tata letak.
Penunjuk Konstan dan Penyelarasan adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.
Akses Hanya Baca
Sering kali Anda ingin membagikan sebuah nilai tetapi berjanji tidak akan mengubahnya. Pointer const memberikan akses baca sekaligus melarang penulisan.
Tipe *const T
Tulislah penunjuk ke data yang tidak dapat diubah sebagai *const T. Anda dapat membacanya, tetapi penetapan ke targetnya akan menyebabkan kesalahan kompilasi.
const x: i32 = 5;
const p: *const i32 = &x;Const Berpindah Bersama &
Mengambil alamat nilai const secara otomatis menghasilkan *const T, sehingga ketidakmampuan untuk mengubahnya dipertahankan oleh tipenya.
const v: u8 = 9;
const p = &v; // *const u8Mutable Dapat Dikonversi Menjadi Const
*T dapat dikonversi secara bebas menjadi *const T, karena menghapus izin penulisan selalu aman. Arah sebaliknya tidak diizinkan.
var n: i32 = 1;
const ro: *const i32 = &n;Mengapa Memilih const
Menerima parameter *const T memberi tahu pemanggil bahwa Anda hanya akan membacanya, sehingga fungsi lebih mudah dipercaya.
fn show(p: *const i32) void {
// read only
}Makna Alignment
Setiap tipe memiliki alignment: batas alamat tempat tipe tersebut harus berada. u32 biasanya memerlukan alamat yang habis dibagi empat.
Menanyakan dengan @alignOf
Fungsi bawaan @alignOf(T) mengembalikan alignment yang diperlukan suatu tipe dalam satuan bita, sama seperti @sizeOf yang mengembalikan ukurannya.
const a = @alignOf(u32);Alignment dalam Tipe
Anda dapat menyatakan alignment penunjuk dalam tipenya menggunakan align, seperti pada *align(4) u8, untuk menetapkan batas tertentu.
var p: *align(4) u8 = undefined;Mengapa Alignment Penting
Perangkat keras membaca data yang selaras dengan lebih cepat, dan beberapa CPU mengalami fault saat mengakses data yang tidak selaras. Zig melacak alignment dalam tipe agar hal ini tetap benar.
Alignment Berlebih dan Kurang
Penunjuk dapat menjanjikan alignment yang lebih kuat daripada bawaan, tetapi Anda tidak dapat melemahkannya tanpa cast eksplisit seperti @alignCast.
Const dan align Bersama
Keduanya berpadu secara alami: *const align(8) T adalah penunjuk hanya-baca yang juga menjamin batas delapan bita.
Pemeriksaan Singkat
Anda menulis fungsi yang hanya perlu membaca nilai di balik sebuah penunjuk. Tipe parameter mana yang paling tepat menyatakan kebutuhan tersebut?
Ringkasan
Penunjuk *const T membagikan data hanya untuk dibaca dan dapat dikonversi dari *T, sedangkan alignment, yang dilihat melalui @alignOf dan align(n), menjaga akses memori tetap benar dan cepat. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Penunjuk Konstan dan Penyelarasan” gratis?
Ya — teks lengkap “Penunjuk Konstan dan Penyelarasan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Penunjuk Konstan dan Penyelarasan”?
Nyatakan akses hanya-baca dan tata letak. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Zig Academy?
Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Penunjuk Konstan dan Penyelarasan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?
Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Penunjuk Satu Item dengan *T
- Dereferensi dengan ptr.*
- Penunjuk Banyak Item [*]T
- Penunjuk Konstan dan Penyelarasan