传值调用 向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。默认情况下,C++ 使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include <iostream> using namespace std;void swap (int x, int y) ;void swap (int x, int y) { int temp; temp = x; x = y; y = temp; return ; } int main () { int a = 100 ; int b = 200 ; cout << "before swap,a:" << a << endl; cout << "before swap,b:" << b << endl; swap (a, b); cout << "After swap,a:" << a << endl; cout << "After swap,b:" << b << endl; return 0 ; }
指针调用 向函数传递参数的指针调用方法,把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
按指针传递值,参数指针被传递给函数,就像传递其他值给函数一样。因此相应地,在下面的函数 swap()中,您需要声明函数参数为指针类型,该函数用于交换参数所指向的两个整数变量的值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include <iostream> using namespace std;void swap (int *x, int *y) ;void swap (int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; return ; } int main () { int a = 100 ; int b = 200 ; cout << "before swap,a:" << a << endl; cout << "before swap,b:" << b << endl; swap (&a, &b); cout << "After swap,a:" << a << endl; cout << "After swap,b:" << b << endl; return 0 ; }
引用调用 //向函数传递参数的引用调用方法,把引用的地址复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。//按引用传递值,参数引用被传递给函数,就像传递其他值给函数一样。因此相应地,//在下面的函数 swap()中,您需要声明函数参数为引用类型,该函数用于交换参数所指向的两个整数变量的值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <iostream> using namespace std;void swap (int &x, int &y) ;void swap (int &x, int &y) { int temp; temp = x; x = y; y = temp; return ; } int main () { int a = 100 ; int b = 200 ; cout << "before swap,a:" << a << endl; cout << "before swap,b:" << b << endl; swap (a, b); cout << "After swap,a:" << a << endl; cout << "After swap,b:" << b << endl; return 0 ; }