Dalam C, kita boleh lulus parameter dalam dua cara berbeza. Ini adalah panggilan mengikut nilai dan panggilan mengikut alamat dan dalam C++ kita boleh mendapatkan teknik lain. Ini dipanggil memanggil dengan rujukan. Mari kita lihat kesannya dan cara ia berfungsi.
Mula-mula kita akan lihat panggilan mengikut nilai. Dalam teknik ini, parameter disalin ke dalam parameter fungsi. Jadi jika beberapa pengubahsuaian dibuat, ini akan mengemas kini nilai yang disalin, bukan nilai sebenar.
#include <iostream> using namespace std; void my_swap(int x, int y) { int temp; temp = x; x = y; y = temp; } int main() { int a, b; a = 10; b = 40; cout << "(a,b) = (" << a << ", " << b << ")\n"; my_swap(a, b); cout << "(a,b) = (" << a << ", " << b << ")\n"; }
(a,b) = (10, 40) (a,b) = (10, 40)
Panggilan melalui alamat berfungsi dengan menghantar alamat pembolehubah ke dalam fungsi. Jadi apabila fungsi mengemas kini nilai yang ditunjukkan oleh alamat itu, nilai sebenar dikemas kini secara automatik.
#include <iostream> using namespace std; void my_swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } int main() { int a, b; a = 10; b = 40; cout << "(a,b) = (" << a << ", " << b << ")\n"; my_swap(&a, &b); cout << "(a,b) = (" << a << ", " << b << ")\n"; }
(a,b) = (10, 40) (a,b) = (40, 10)
Sama seperti panggilan alamat, di sini kami menggunakan panggilan rujukan. Ini ialah ciri khusus C++. Kita perlu lulus pembolehubah rujukan parameter, jadi untuk mengemas kininya, nilai sebenar akan dikemas kini. Hanya dalam definisi fungsi kita perlu meletakkan & sebelum nama pembolehubah.
#include <iostream> using namespace std; void my_swap(int &x, int &y) { int temp; temp = x; x = y; y = temp; } int main() { int a, b; a = 10; b = 40; cout << "(a,b) = (" << a << ", " << b << ")\n"; my_swap(a, b); cout << "(a,b) = (" << a << ", " << b << ")\n"; }
(a,b) = (10, 40) (a,b) = (40, 10)
Atas ialah kandungan terperinci Teknologi lulus parameter dalam C/C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!