Rumah > pembangunan bahagian belakang > C++ > Bilakah Saya Harus Menggunakan Rujukan lwn. Penunjuk dalam C ?

Bilakah Saya Harus Menggunakan Rujukan lwn. Penunjuk dalam C ?

Linda Hamilton
Lepaskan: 2024-11-13 12:26:02
asal
283 orang telah melayarinya

When Should I Use References vs. Pointers in C  ?

Melalui Rujukan lwn. Penunjuk dalam C

Dalam C , memahami masa menggunakan rujukan dan penunjuk boleh menjadi topik yang mengelirukan. Artikel ini meneroka nuansa melalui rujukan dan penunjuk, menyediakan garis panduan praktikal.

Lewati Rujukan:

Melalui rujukan disyorkan apabila anda perlu:

  • Ubah suai nilai sebenar yang diluluskan pembolehubah.
  • Lepasi objek kompleks (cth., rentetan, vektor) dengan cekap, mengelakkan overhed penyalinan.

Lewati Penunjuk:

Melalui penunjuk diperlukan apabila:

  • Anda tidak boleh melepasi sementara objek dengan rujukan (memandangkan rujukan mesti terikat pada objek sedia ada).
  • Anda perlu melepasi penuding nol.
  • Anda perlu menukar penunjuk itu sendiri, bukan sasarannya (mis., tetapkan nilai baharu pada penuding).

Terbaik Amalan:

Sebagai peraturan umum, lebih suka lulus melalui rujukan apabila boleh. Walau bagaimanapun, apabila berurusan dengan literal, penuding nol atau situasi di mana anda perlu mengubah suai penuding itu sendiri, lulus demi penuding.

Contoh:

Coretan kod yang disediakan pas penunjuk kepada vektor yang diperuntukkan secara dinamik pada peta. Ini adalah pendekatan yang sah kerana kita perlu mencipta vektor baharu dan menghantarnya dengan merujuk kepada peta. Dengan menggunakan penunjuk, kami mengelakkan keperluan untuk menyalin keseluruhan vektor.

#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <tr1/memory>
#include <algorithm>
using namespace std;
using namespace std::tr1;

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;
}
Salin selepas log masuk

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan