Rumah > Artikel > pembangunan bahagian belakang > Mengapa Mengikat Objek Sementara kepada Rujukan Malar Memanjangkan Jangka Hayatnya dalam C ?
Dalam C , memberikan objek sementara kepada rujukan tetap ialah operasi biasa yang pada mulanya mungkin menimbulkan persoalan tentang jangka hayat sementara.
Soalan:
Mengapa kod berikut sah dan tidak mengakibatkan ralat pengkompil?
<code class="cpp">string foo() { return string("123"); } int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; }</code>
Jawapan:
C dengan jelas mentakrifkan bahawa mengikat objek sementara kepada rujukan berasaskan tindanan berterusan memanjangkan hayat sementara untuk dipadankan dengan rujukan. Dalam senario ini, sementara yang dikembalikan oleh foo() kekal sehingga akhir fungsi main().
Penjelasan:
Nota:
Atas ialah kandungan terperinci Mengapa Mengikat Objek Sementara kepada Rujukan Malar Memanjangkan Jangka Hayatnya dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!