Penyahrujukan dan Aritmetik Penuding
Baca memori melalui penuding dan telusuri tatasusunan dengan aritmetik penuding.
Penyahrujukan dan Aritmetik Penuding ialah pelajaran C++ Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C++ Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Membaca Melalui Penuding
Operator unari * membaca nilai yang ditunjukkan oleh penuding.
int x = 42;
int* p = &x;
std::cout << *p; // 42Menulis Melalui Penuding
Anda juga boleh menggunakan *p di sebelah kiri tugasan untuk menulis kepada sasaran.
*p = 100;
std::cout << x; // 100Operator Anak Panah
Untuk penuding kepada struktur atau kelas, p->member ialah bentuk ringkas bagi (*p).member. Gunakan anak panah — ini ialah konvensyennya.
struct Point { int x, y; };
Point pt{3, 4};
Point* p = &pt;
std::cout << p->x; // 3Asas Aritmetik Penuding
Anda boleh menambah atau menolak integer daripada penuding. Hasilnya bergerak mengikut langkah bersaiz elemen — bukan bait.
int a[5] = {10, 20, 30, 40, 50};
int* p = a; // points to a[0]
p = p + 2; // now points to a[2]
std::cout << *p; // 30Menelusuri Tatasusunan
Aritmetik penuding meniru pengindeksan. a[i] dan *(a + i) adalah serupa — dan p[i] berfungsi pada sebarang penuding.
int a[] = {1, 2, 3, 4};
int* p = a;
for (int i = 0; i < 4; ++i) {
std::cout << *(p + i) << " ";
}Perbezaan antara Dua Penuding
Menolak dua penuding dalam tatasusunan yang sama memberikan jarak dalam bilangan elemen — jenisnya ialah std::ptrdiff_t.
int a[5];
int* first = a;
int* last = a + 5;
std::ptrdiff_t len = last - first; // 5Membandingkan Penuding
Anda boleh membandingkan kesamaan penuding dengan == dan !=, serta membandingkan susunannya dengan < hanya apabila kedua-duanya menunjuk ke dalam tatasusunan yang sama.
Melakukan Lelaran dengan Penuding
Lelaran gaya C yang lazim menggunakan dua penuding — mula dan akhir.
int a[] = {1, 2, 3, 4, 5};
for (int* p = a; p != a + 5; ++p) {
std::cout << *p << " ";
}Kedudukan Selepas Akhir Dibenarkan
Anda boleh mengira penuding satu kedudukan selepas elemen terakhir (penuding "akhir") — tetapi menyahrujuknya tidak ditakrifkan.
Kesilapan Aritmetik Penuding
Kesilapan yang biasa berlaku:
- Melepasi sempadan tatasusunan
- Mencampurkan jenis penuding (
int*+char*) - Melupakan bahawa aritmetik menggunakan unit elemen, bukan bait
Utamakan Lelaran atau Julat
C++ moden mengutamakan lelaran dan pustaka julat berbanding aritmetik penuding mentah. Penuding kekal penting untuk API C dan kod aras sangat rendah.
Semakan Pantas
Jika p ialah int* yang menunjuk ke permulaan int 4 bait, ke manakah p + 1 menunjuk?
Imbas Kembali
*p membaca atau menulis sasaran. p->member mengakses ahli struktur. Aritmetik penuding bergerak mengikut langkah bersaiz elemen. Gunakannya dengan cermat — lelaran dan julat biasanya merupakan pilihan yang lebih selamat dalam kod moden.
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Penyahrujukan dan Aritmetik Penuding” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran C++ Academy, termasuk “Penyahrujukan dan Aritmetik Penuding”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penyahrujukan dan Aritmetik Penuding”?
Baca memori melalui penuding dan telusuri tatasusunan dengan aritmetik penuding. Anda berlatih C++ Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C++ Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C++ Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Penyahrujukan dan Aritmetik Penuding” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Penuding Mentah dan Operator Address-of
- Penyahrujukan dan Aritmetik Penuding
- nullptr dan Keselamatan Penuding Null
- Masa untuk Menggunakan Penuding berbanding Rujukan