1.按值傳遞:
#include<iostream>
using namespace std;
void swap(int a, int b){
int c;
cout << "swap交換前,a:" << a <<
"b:" << b << endl;
c = a;
a = b;
b = c;
cout << "swap交換hou,a:" << a <<
"b:" << b << endl;
}
int main(){
int x = 3, y = 4;
cout << "main交換前,a:" << x <<
"b:" << y << endl;
swap(x, y);
cout << "main交換hou,a:" << x <<
"b:" << y << endl;
return 0;
}
2.按址傳遞:
#include<iostream>
using namespace std;
void swap(int *a, int *b){
int c;
cout << "swap交換前,a:" << *a <<
"b:" << *b << endl;
c = *a;
*a = *b;
*b = c;
cout << "swap交換hou,a:" << *a <<
"b:" << *b << endl;
}
int main(){
int x = 3, y = 4;
cout << "main交換前,a:" << x <<
"b:" << y << endl;
swap(&x, &y);
cout << "main交換hou,a:" << x <<
"b:" << y << endl;
return 0;
}
3.按別名傳遞:
#include<iostream>
using namespace std;
void swap(int &a, int &b){
int c;
cout << "swap交換前,a:" << a <<
"b:" << b << endl;
c = a;
a = b;
b = c;
cout << "swap交換hou,a:" << a <<
"b:" << b << endl;
}
int main(){
int x = 3, y = 4;
cout << "main交換前,a:" << x <<
"b:" << y << endl;
swap(x, y);
cout << "main交換hou,a:" << x <<
"b:" << y << endl;
return 0;
}
4.綜合運用:
#include<iostream>
using namespace std;
void fun(int a, int *b, int &c);
int main(){
int a = 1, b = 2, c = 3;
cout << "main調用fun前\n";
cout << "a:" << a << endl
<< "b:" << b << endl << "c:" << c
<< endl;
fun(a, &b, c);
cout << "main調用fun後\n";
cout << "a:" << a << endl
<< "b:" << b << endl << "c:" << c
<< endl;
return 0;
}
void fun(int a, int *b, int &c){
cout << "fun函數中,計算前..\n";
cout << "a:" << a << endl
<< "b:" << *b << endl << "c:" << c
<< endl;
a += 1;
*b = (*b)*(*b);
c = (c)*(c)*(c);
cout << "fun函數中,計算後..\n";
cout << "a:" << a << endl
<< "b:" << *b << endl << "c:" << c
<< endl;
}