1.值传递(实参值不变)
#include<iostream>using namespace std;//1.值传递(实参值不变)
void Swap01(int a,int b){int temp=a;a=b;b=temp;cout<<"形式参数a="<<a<<endl;cout<<"形式参数b="<<b<<endl;
}int main(){int a=10;int b=20;Swap01(a,b);//这是值传递,形参不会修饰实参//形参改变了,实参并没有cout<<"-------------"<<endl;cout<<"实际参数a="<<a<<endl;cout<<"实际参数b="<<b<<endl;system("pause");return 0;
}
2.址传递(实参值变化)
#include<iostream>using namespace std;//1.址传递(实参值变化)
void Swap02(int* a,int* b){int temp=*a;*a=*b;*b=temp;cout<<"形式参数a="<<*a<<endl;cout<<"形式参数b="<<*b<<endl;
}int main(){int a=10;int b=20;Swap02(&a,&b);//这是址传递,形参会修饰实参//形参改变了,实参也改变了//什么是址传递,就是将变量的地址空间传过去//在地址空间中改值。cout<<"-------------"<<endl;cout<<"实际参数a="<<a<<endl;cout<<"实际参数b="<<b<<endl;system("pause");return 0;
}
3.引用传递(实参值改变)
#include<iostream>using namespace std;//1.引用传递(实参值改变)
void Swap03(int &a,int&b){int temp=a;a=b;b=temp;cout<<"形式参数a="<<a<<endl;cout<<"形式参数b="<<b<<endl;
}int main(){int a=10;int b=20;Swap03(a,b);//这是引用传递,形参会修饰实参//形参改变了,实参也改变了cout<<"-------------"<<endl;cout<<"实际参数a="<<a<<endl;cout<<"实际参数b="<<b<<endl;//通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单system("pause");return 0;
}