Rumah > pembangunan bahagian belakang > C++ > Bolehkah Rujukan C Ditugaskan Semula, atau Adakah Ia Hanya Pengubahsuaian Nilai?

Bolehkah Rujukan C Ditugaskan Semula, atau Adakah Ia Hanya Pengubahsuaian Nilai?

Barbara Streisand
Lepaskan: 2024-12-05 01:34:11
asal
717 orang telah melayarinya

Can C   References Be Reassigned, or is it Just Value Modification?

Penugasan Semula Rujukan dalam C

Mengisytiharkan rujukan dalam C memerlukan permulaan, menimbulkan tanggapan bahawa rujukan tidak boleh diubah dan tidak boleh ditetapkan semula. Walau bagaimanapun, pertimbangkan program berikut:

#include <iostream>

using namespace std;

int main() {
    int i = 5, j = 9;

    int &ri = i;
    cout << "ri is : " << ri << '\n';
    i = 10;
    cout << "ri is : " << ri << '\n';
    ri = j; // Is this not reassigning the reference?
    cout << "ri is : " << ri << '\n';
    return 0;
}
Salin selepas log masuk

Kod berjaya menyusun dan menghasilkan output yang diharapkan:

ri is : 5
ri is : 10
ri is : 9
Salin selepas log masuk

Bertentangan dengan kepercayaan popular, baris ri = j tidak menetapkan semula rujukan ri. Sebaliknya, ia mengubah suai nilai i melalui rujukan ri, seperti yang dibuktikan dengan mencetak i sebelum dan selepas baris. Tingkah laku ini disokong oleh fakta bahawa &ri dan &i mencetak alamat yang sama, menunjukkan bahawa ri kekal sebagai rujukan kepada i.

Sebaliknya, mengisytiharkan rujukan tetap (const int &cri = i) menghalang penugasan semula rujukan sendiri.

Atas ialah kandungan terperinci Bolehkah Rujukan C Ditugaskan Semula, atau Adakah Ia Hanya Pengubahsuaian Nilai?. 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