C++ Academy · Pelajaran

Pemboleh Ubah dan Parameter const

Lindungi data daripada perubahan

Pelajaran 1 daripada 413 langkah

Pemboleh Ubah dan Parameter const ialah pelajaran C++ Academy percuma di CoddyKit. Ini ialah pelajaran 1 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.

Mengisytiharkan Pemboleh Ubah const

Pemboleh ubah const tidak boleh diubah selepas dimulakan. Pengkompil menguatkuasakan perkara ini dan mengesan penulisan yang tidak disengajakan.

#include <iostream>

int main() {
    const int maxUsers = 100;
    // maxUsers = 200;   // ERROR
    std::cout << maxUsers << "\n";
}

Parameter Fungsi const

Menandakan parameter mengikut nilai sebagai const menghalang badan fungsi daripada mengubah salinan setempatnya — satu bantuan untuk dokumentasi dan keselamatan.

#include <iostream>

int doubled(const int n) {
    // n = 0;   // ERROR
    return n * 2;
}

int main() { std::cout << doubled(21) << "\n"; }

Parameter Rujukan const

Menghantar melalui const& mengelakkan penyalinan objek besar sambil menjamin bahawa objek tersebut tidak diubah — cara piawai untuk menghantar rentetan dan bekas.

#include <iostream>
#include <string>

void printLen(const std::string& s) {  // no copy, no change
    std::cout << s.size() << "\n";
}

int main() { printLen("hello"); }

Penuding kepada const

const T* bermaksud anda tidak boleh mengubah nilai yang dituding melalui penuding ini, walaupun penuding itu sendiri boleh ditetapkan kepada sasaran lain.

#include <iostream>

int main() {
    int a = 1, b = 2;
    const int* p = &a;
    // *p = 5;   // ERROR: value is const
    p = &b;      // OK: pointer can move
    std::cout << *p << "\n";
}

Penuding const

T* const ialah penuding malar: anda tidak boleh menetapkannya kepada sasaran lain, but anda boleh mengubah nilai yang ditudingnya.

#include <iostream>

int main() {
    int a = 1;
    int* const p = &a;
    *p = 9;      // OK: value changeable
    // p = nullptr;  // ERROR: pointer is const
    std::cout << *p << "\n";
}

Membaca Pengisytiharan dari Kanan ke Kiri

Baca pengisytiharan const dari kanan ke kiri: const int* const ialah "penuding const kepada int const" — nilai dan penuding tidak boleh diubah.

Mengapa Ketepatan const?

Menggunakan const di mana-mana yang sesuai mendokumentasikan niat, mencegah pepijat dan membolehkan pengkompil melakukan pengoptimuman. Disiplin ini dipanggil ketepatan const.

const Membolehkan Pemanggil const

Fungsi yang menerima const& boleh menerima argumen const dan bukan const, serta objek sementara. Rujukan bukan const tidak boleh terikat kepada objek sementara.

Local const Membantu Penaakulan

Mengisytiharkan pemboleh ubah setempat sebagai const apabila nilainya tidak sepatutnya berubah menjadikan kod lebih mudah dibaca dan mencegah penetapan semula yang tidak disengajakan.

#include <iostream>

int main() {
    const double rate = 0.2;
    const double total = 100 * (1 + rate);
    std::cout << total << "\n";
}

const Aras Teratas pada Nilai

Bagi parameter mengikut nilai, const aras teratas tidak mempengaruhi pemanggil — ia hanya mengehadkan badan fungsi dan sering digugurkan dalam pengisytiharan.

Tambahkan const Sejak Awal

Memulakan dengan kod yang mempunyai ketepatan const jauh lebih mudah berbanding menambahkannya kemudian. Gunakan const pada parameter, rujukan dan pemboleh ubah setempat sebagai tabiat lalai.

Semakan Pantas

Uji pemahaman anda tentang const.

Ringkasan

Anda telah mempelajari cara menggunakan const pada pemboleh ubah, parameter, rujukan dan penuding, serta perbezaan antara penuding kepada const dengan penuding const. Ketepatan const mendokumentasikan niat, mencegah pepijat dan membolehkan pengikatan kepada objek sementara serta pengoptimuman.

Percuma untuk bermula

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 “Pemboleh Ubah dan Parameter const” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran C++ Academy, termasuk “Pemboleh Ubah dan Parameter const”, 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 “Pemboleh Ubah dan Parameter const”?

Lindungi data daripada perubahan 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 1 daripada 4.

Berapa lamakah pelajaran “Pemboleh Ubah dan Parameter const” 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

  1. Pemboleh Ubah dan Parameter const
  2. Fungsi Ahli const
  3. constexpr dan Masa Kompilasi
  4. consteval dan constinit
← Kembali ke C++ Academy