Rumah pembangunan bahagian belakang C++ Apakah perbezaan antara penunjuk dan rujukan dalam C++?

Apakah perbezaan antara penunjuk dan rujukan dalam C++?

Jun 02, 2024 pm 04:47 PM
penunjuk sebut harga

Penunjuk dan rujukan ialah kedua-dua alat untuk menangani lokasi memori, tetapi terdapat perbezaan: 1. Penunjuk menyimpan alamat pembolehubah, dan rujukan menghala terus ke pembolehubah. 2. Penunjuk mengakses pembolehubah secara tidak langsung dan rujukan terus mengaksesnya. 3. Penunjuk boleh menunjuk ke nol, dan rujukan mesti menunjuk kepada pembolehubah yang sah. 4. Menggunakan penunjuk untuk menukar nilai pembolehubah memerlukan penyahrujukan, tetapi bukan rujukan.

指针和引用在 C++ 中有何区别?

Perbezaan antara penunjuk dan rujukan dalam C++

Kedua-dua penunjuk dan rujukan ialah alat yang berkuasa untuk bekerja dengan lokasi memori dalam C++, tetapi terdapat beberapa perbezaan utama di antara mereka.

Definisi

  • Penunjuk ialah pembolehubah yang menyimpan alamat (lokasi memori) pembolehubah lain.
  • Rujukan ialah alias yang menghala terus ke pembolehubah lain.

Syntax

  • Penunjuk: int *ptr;int *ptr;
  • 引用:int &ref;

间接访问

  • 指针间接访问目标变量:*ptr
  • 引用直接访问目标变量:ref

生命周期

  • 指针:可以指向另一个变量,也可以指向空(nullptr)。
  • 引用:必须始终指向一个有效的变量。

解引用

  • 指针必须被解引用以获取目标变量的地址:*ptr
  • Petikan:
  • int &ref;

Akses tidak langsung penunjuk kepada pembolehubah sasaran: *ptr

    Rujukan akses terus kepada pembolehubah sasaran: ref
  • Lifecycle

  • Penunjuk: boleh menunjuk kepada pembolehubah lain , juga boleh menunjuk ke null (nullptr).

Petikan:

mesti sentiasa menunjuk kepada pembolehubah yang sah.

    Dereference
  • Penunjuk mesti dinyahrujuk untuk mendapatkan alamat pembolehubah sasaran: *ptr
  • Rujukan tidak perlu dinyahrujuk kerana ia mengakses pembolehubah sasaran secara langsung.
🎜Kes praktikal: menukar nilai dua pembolehubah🎜🎜🎜Berikut ialah kes praktikal menukar nilai dua pembolehubah integer menggunakan penunjuk dan rujukan: 🎜🎜🎜🎜🎜Pointer: 🎜🎜🎜 🎜🎜🎜Petikan: 🎜 🎜
void swapPtr(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}

int main() {
int a = 5, b = 10;
swapPtr(&a, &b);
// a 现在是 10,b 现在是 5
}
Salin selepas log masuk
🎜🎜🎜🎜Kesimpulan🎜🎜🎜🎜Penunjuk memberikan akses tidak langsung ke lokasi memori dan boleh menunjuk ke nol. 🎜🎜Rujukan menyediakan akses terus kepada pembolehubah dan mesti sentiasa menunjuk kepada pembolehubah yang sah. 🎜🎜Penunjuk ialah pilihan yang lebih baik apabila akses tidak langsung ke lokasi memori (cth. tatasusunan, struktur) diperlukan. 🎜🎜Rujukan ialah pilihan yang lebih baik untuk situasi di mana akses terus kepada pembolehubah (seperti parameter fungsi) diperlukan. 🎜🎜

Atas ialah kandungan terperinci Apakah perbezaan antara penunjuk dan rujukan dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan petikan blok dalam Apple Notes Cara menggunakan petikan blok dalam Apple Notes Oct 12, 2023 pm 11:49 PM

Dalam iOS 17 dan macOS Sonoma, Apple telah menambah pilihan pemformatan baharu untuk Apple Notes, termasuk petikan blok dan gaya Monostyle baharu. Inilah cara untuk menggunakannya. Dengan pilihan pemformatan tambahan dalam Apple Notes, anda kini boleh menambah petikan blok pada nota anda. Format petikan blok memudahkan untuk mengimbangi bahagian penulisan secara visual menggunakan bar petikan di sebelah kiri teks. Hanya ketik/klik butang format "Aa" dan pilih pilihan petikan blok sebelum menaip atau apabila anda berada di baris yang anda ingin tukar kepada petikan blok. Pilihan ini digunakan pada semua jenis teks, pilihan gaya dan senarai, termasuk senarai semak. Dalam menu Format yang sama anda boleh mencari pilihan Gaya Tunggal baharu. Ini ialah semakan bagi "lebar sama" sebelumnya

Ralat kompilasi C++: rujukan tidak ditentukan, bagaimana untuk menyelesaikannya? Ralat kompilasi C++: rujukan tidak ditentukan, bagaimana untuk menyelesaikannya? Aug 21, 2023 pm 08:52 PM

C++ ialah bahasa pengaturcaraan yang popular, tetapi semasa penggunaan, ralat kompilasi "rujukan tidak ditentukan" sering berlaku, yang membawa banyak masalah kepada pembangunan program. Artikel ini akan membincangkan penyelesaian kepada ralat "rujukan tidak ditentukan" daripada punca dan penyelesaiannya. 1. Punca ralat Apabila pengkompil C++ menyusun fail sumber, ia akan dibahagikan kepada dua peringkat: peringkat penyusunan dan peringkat pautan. Fasa kompilasi menukarkan kod sumber dalam fail sumber kepada kod pemasangan, manakala fasa pemautan menggabungkan fail sumber yang berbeza menjadi fail boleh laku.

Bagaimanakah fungsi generik mengendalikan penunjuk dan jenis rujukan dalam Golang? Bagaimanakah fungsi generik mengendalikan penunjuk dan jenis rujukan dalam Golang? Apr 16, 2024 pm 04:06 PM

Apabila fungsi generik mengendalikan jenis penuding dalam Go, ia akan menerima rujukan kepada pembolehubah asal, membenarkan nilai pembolehubah diubah suai. Jenis rujukan disalin apabila diluluskan, menjadikan fungsi tidak dapat mengubah suai nilai pembolehubah asal. Contoh praktikal termasuk menggunakan fungsi generik untuk membandingkan rentetan atau kepingan nombor.

Bagaimana untuk mendayakan atau melumpuhkan ketepatan penunjuk yang dipertingkatkan pada Windows 11 Bagaimana untuk mendayakan atau melumpuhkan ketepatan penunjuk yang dipertingkatkan pada Windows 11 Sep 27, 2023 pm 12:21 PM

Ketepatan penunjuk adalah penting dalam situasi di mana ketepatan yang lebih tinggi dan kedudukan kursor yang lebih baik diperlukan. Ia didayakan secara lalai dalam Windows 11, tetapi anda mungkin perlu mengkonfigurasi semula ketepatan penunjuk yang dipertingkatkan untuk prestasi yang lebih baik. Sebagai contoh, anda mungkin tidak mahu Windows melaraskan semula kelajuan penunjuk secara automatik, tetapi sebaliknya meliputi jarak tetap apabila membuat pergerakan tetikus yang serupa. Apakah ketepatan penunjuk yang dipertingkatkan? Ketepatan penuding dipertingkat melaraskan sejauh mana kursor bergerak berdasarkan kelajuan tetikus bergerak. Oleh itu, semakin cepat tetikus bergerak, semakin jauh jarak yang ditempuhi. Bagi mereka yang tertanya-tanya apa yang dilakukan oleh Windows Enhanced Pointer Precision, ia mengubah sensitiviti tetikus. Bagaimana untuk menghidupkan atau mematikan ketepatan penunjuk yang dipertingkatkan dalam Windows 11? 1. Tekan melalui Tetapan

Apakah faedah fungsi C++ mengembalikan jenis rujukan? Apakah faedah fungsi C++ mengembalikan jenis rujukan? Apr 20, 2024 pm 09:12 PM

Faedah fungsi mengembalikan jenis rujukan dalam C++ termasuk: Peningkatan prestasi: Melewati rujukan mengelakkan penyalinan objek, sekali gus menjimatkan memori dan masa. Pengubahsuaian langsung: Pemanggil boleh mengubah suai secara langsung objek rujukan yang dikembalikan tanpa menugaskannya semula. Kesederhanaan kod: Lulus melalui rujukan memudahkan kod dan tidak memerlukan operasi penugasan tambahan.

Kaedah jenis penunjuk Golang lanjutan untuk meningkatkan kemahiran pengaturcaraan Kaedah jenis penunjuk Golang lanjutan untuk meningkatkan kemahiran pengaturcaraan Apr 07, 2024 pm 06:42 PM

Pendekatan jenis penuding tersedia dalam bahasa Go, yang membolehkan anda mentakrifkan fungsi jenis penuding untuk mengubah suai nilai yang ditunjuk tanpa menghantar penuding secara eksplisit dalam tandatangan kaedah. Ini memberikan kesederhanaan dan kecekapan kod kerana pas salin demi nilai tidak perlu disalin. Sintaks kaedah jenis penunjuk ialah: typeTypeName*Type\nfunc(t*TypeName)MethodName(). Untuk menggunakan kaedah jenis penuding, anda membuat penuding kepada contoh jenis dan kemudian menggunakan penuding itu untuk memanggil kaedah tersebut. Faedah kaedah jenis penunjuk termasuk kesederhanaan kod, kecekapan dan kebolehubahsuaian. Perlu diingatkan bahawa kaedah jenis penunjuk hanya boleh digunakan untuk jenis penunjuk, dan anda perlu berhati-hati apabila menggunakannya, kerana nilai struktur yang ditunjukkan mungkin secara tidak sengaja.

Bagaimana untuk menggunakan rujukan C++ dan lulus parameter penunjuk? Bagaimana untuk menggunakan rujukan C++ dan lulus parameter penunjuk? Apr 12, 2024 pm 10:21 PM

Rujukan dan petunjuk dalam C++ adalah kedua-dua kaedah untuk menghantar parameter fungsi, tetapi terdapat perbezaan. Rujukan ialah alias untuk pembolehubah Mengubah suai rujukan akan mengubah suai pembolehubah asal, manakala penunjuk menyimpan alamat pembolehubah tidak akan mengubah suai pembolehubah asal. Apabila memilih untuk menggunakan rujukan atau penunjuk, anda perlu mempertimbangkan faktor seperti sama ada pembolehubah asal perlu diubah suai, sama ada nilai nol perlu diluluskan dan pertimbangan prestasi.

Pemahaman mendalam tentang const dalam bahasa C Pemahaman mendalam tentang const dalam bahasa C Feb 18, 2024 pm 12:56 PM

Penerangan terperinci dan contoh kod const dalam C Dalam bahasa C, kata kunci const digunakan untuk menentukan pemalar, yang bermaksud bahawa nilai pembolehubah tidak boleh diubah suai semasa pelaksanaan program. Kata kunci const boleh digunakan untuk mengubah suai pembolehubah, parameter fungsi dan nilai pulangan fungsi. Artikel ini akan memberikan analisis terperinci tentang penggunaan kata kunci const dalam bahasa C dan memberikan contoh kod khusus. pembolehubah diubah suai const Apabila const digunakan untuk mengubah suai pembolehubah, ini bermakna pembolehubah itu ialah pembolehubah baca sahaja dan tidak boleh diubah suai setelah ia diberikan nilai. Contohnya: berterusan

See all articles