Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bilakah Anda Harus Menggunakan Rujukan dan Bilakah Anda Harus Menggunakan Penunjuk dalam C?

Bilakah Anda Harus Menggunakan Rujukan dan Bilakah Anda Harus Menggunakan Penunjuk dalam C?

Susan Sarandon
Susan Sarandonasal
2024-11-12 11:36:01901semak imbas

When Should You Use References and When Should You Use Pointers in C  ?

Melalui Rujukan lwn. Penunjuk dalam C

Menentukan bila untuk lulus dengan rujukan dan bila untuk melepasi penunjuk boleh menjadi perkara yang mengelirukan dalam C . Mari kita terokai kelebihan dan kekurangan setiap pendekatan.

Melalui Rujukan

  • Kelebihan:

    • Mengubah suai data sebenar pada pemanggil lokasi.
    • Cekap, kerana pautan terus diwujudkan tanpa menyalin.
  • Kelemahan:

    • Tidak boleh menghantar nilai literal atau nol.
    • Memerlukan data asas untuk mempunyai rujukan yang sah.

Melalui Penunjuk

  • Kelebihan:

    • Membenarkan hantaran dalam huruf tersurat dan nol nilai.
    • Memberikan lebih kawalan ke atas pengurusan ingatan.
  • Kelemahan:

    • Boleh kurang cekap kerana menyalin data.
    • Memerlukan pengendalian yang berhati-hati untuk mengelakkan berjuntai petunjuk.

Amalan Terbaik

Peraturan umum ialah "Gunakan rujukan apabila anda boleh dan penunjuk apabila anda perlu ." Contohnya:

  • Apabila menghantar jenis data bukan primitif (cth., rentetan, vektor, peta), rujukan biasanya diutamakan kerana ia membenarkan pengubahsuaian data sebenar.
  • Apabila menghantar nilai literal atau nol, penunjuk mesti digunakan.
  • Dalam kes di mana pengurusan ingatan adalah kritikal atau pemanggil perlu mengekalkan kawalan eksplisit ke atas data, penunjuk boleh menjadi pilihan yang lebih baik.

Contoh

Pertimbangkan coretan kod berikut:

int main() {
    map<string, shared_ptr<vector<string>>> adjacencyMap;
    vector<string>* myFriends = new vector<string>();
    myFriends->push_back(string("a"));
    myFriends->push_back(string("v"));
    myFriends->push_back(string("g"));
    adjacencyMap["s"] = shared_ptr<vector<string>>(myFriends);
    return 0;
}

Dalam contoh ini, menggunakan penunjuk untuk lulus myFriends adalah sesuai kerana ia membolehkan kita mencipta vektor baharu dan kemudian menghantar berkongsi penunjuk kepadanya. Walau bagaimanapun, adalah penting untuk diingat untuk memadamkan Rakan saya secara eksplisit untuk mengelakkan kebocoran memori.

Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Rujukan dan Bilakah Anda Harus Menggunakan Penunjuk dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn