Perbezaan antara hantaran nilai dan hantaran rujukan dalam C++: hantaran nilai mencipta salinan parameter dan tidak menjejaskan pembolehubah asal, hantaran rujukan secara langsung mengendalikan parameter, dan pengubahsuaian ditunjukkan dalam pembolehubah asal. Kes praktikal: menukar dua nilai integer tidak akan bertukar, tetapi lulus melalui rujukan akan.
Perbezaan penting antara nilai lulus dan rujukan lulus dalam C++
Dalam C++, apabila menghantar parameter fungsi, terdapat dua pilihan utama: lulus nilai dan lulus rujukan. Perbezaan asas antara kedua-dua kaedah lulus ini ialah lulus mengikut nilai mencipta salinan parameter, manakala lulus melalui rujukan terus beroperasi pada parameter yang diluluskan.
Pass by value
In pass by value, salinan nilai parameter dihantar ke fungsi. Ini bermakna bahawa sebarang pengubahsuaian yang dibuat oleh fungsi pada salinan hujah yang diluluskan tidak akan menjejaskan pembolehubah asal.
void PrintValue(int num) { num++; } int main() { int x = 5; PrintValue(x); // 传递 x 的副本 cout << x; // 输出 5,因为原始值不受影响 }
Lulus melalui rujukan
Secara rujukan, rujukan parameter yang dihantar kepada fungsi dihantar kepada fungsi. Ini bermakna fungsi tersebut beroperasi secara langsung pada hujah yang diluluskan dan sebarang pengubahsuaian akan ditunjukkan dalam pembolehubah asal.
void PrintReference(int& num) { num++; } int main() { int x = 5; PrintReference(x); // 传递 x 的引用 cout << x; // 输出 6,因为原始值已被修改 }
practical case
A Kes praktikal untuk menggambarkan perbezaan antara nilai lulus dan lulus rujukan: Menukar nilai dua bilangan bulat:
Value lulus:
// 值传递不会交换原始变量的值 void SwapValues(int a, int b) { int temp = a; a = b; b = temp; } int main() { int x = 5, y = 10; SwapValues(x, y); cout << x << " " << y; // 输出 5 10,原始值没有交换 }
reference lulus:
// 引用传递交换原始变量的值 void SwapReferences(int& a, int& b) { int temp = a; a = b; b = temp; } int main() { int x = 5, y = 10; SwapReferences(x, y); cout << x << " " << y; // 输出 10 5,原始值已交换 }
Atas ialah kandungan terperinci Perbezaan penting antara lulus dengan nilai dan lulus dengan rujukan dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!