C ++ call-by
Untuknilai-nilai tradisional parameter yang dikirimkan untuk memanggil fungsi,menyalin nilai sebenarnya dari parameter ke parameter formal fungsi. Dalam hal ini, bentuk modifikasi dari parameter dalam fungsi tidak akan mempengaruhi parameter yang sebenarnya.
Secara default, C ++ menggunakancall-by-carauntuk melewati parameter tersebut. Umumnya, ini berarti bahwa kode dalam fungsi tidak mengubah parameter aktual yang digunakan untuk memanggil fungsi. Fungsiswap () didefinisikan sebagai berikut:
// 函数定义 void swap(int x, int y) { int temp; temp = x; /* 保存 x 的值 */ x = y; /* 把 y 赋值给 x */ y = temp; /* 把 x 赋值给 y */ return; }
Sekarang, mari kita dengan melewati argumen yang sebenarnya untuk memanggil fungsiswap ():
#include <iostream> using namespace std; // 函数声明 void swap(int x, int y); int main () { // 局部变量声明 int a = 100; int b = 200; cout << "交换前,a 的值:" << a << endl; cout << "交换前,b 的值:" << b << endl; // 调用函数来交换值 swap(a, b); cout << "交换后,a 的值:" << a << endl; cout << "交换后,b 的值:" << b << endl; return 0; }
Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:
交换前,a 的值: 100 交换前,b 的值: 200 交换后,a 的值: 100 交换后,b 的值: 200
Contoh di atas menunjukkan bahwa, meskipun perubahan dalam fungsi dan nilai b, namun pada kenyataannya, a dan b nilai tidak berubah.