#include iostream
成都创新互联是一家专业提供宛城企业网站建设,专注与网站制作、成都网站建设、H5高端网站建设、小程序制作等业务。10年已为宛城众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
using namespace std;
//传值调用
void chuanzhi(int a,int b)
{
int t=a;
a=b;
b=t;
cout"传值调用函数里交换完后a,b值:";
couta" "bendl;
}
//指针传递
void zhizhen(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
cout"指针传递函数里交换完后a,b值:";
cout*a" "*bendl;
}
//引用调用
void yinyong(int a,int b)
{
int t=a;
a=b;
b=t;
cout"引用调用函数里交换完后a,b值:";
couta" "bendl;
}
int main()
{
int x=2,y=4;
cout"传值调用前:x=2,y=4"endl;
chuanzhi(x,y);
cout"传值调用后:x="x",y="yendlendl;
x=2,y=4;
cout"指针传递前:x=2,y=4"endl;
zhizhen(x,y);
cout"指针传递后:x="x",y="yendlendl;
x=2,y=4;
cout"引用调用前:x=2,y=4"endl;
yinyong(x,y);
cout"引用调用后:x="x",y="yendlendl;
return 0;
}
写的有点多 运行完就 9 行
放在c++ 编译器里 运行下看看 就知道了
交换函数里面是肯定交换了,
而只有 指针传递和引用传递 才会对原来的变量值产生影响;
1、值传递,创建变量x和y,x的值等于a的值,y的值等于b的值
void Exchg1(int x, int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6;
Exchg1 (a,b) ;
printf(“a=%d,b=%d/n”,a,b)
}
2、地址传递,相当于建立了px和py两个指向整型的指针,其值分别为a和b的地址
Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d/n”,*px,*py);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
3、引用传递,x和y直接引用a和b,对a和b操作,相当于给a、b起了别名x、y
Exchg2(int x, int y)
{
int tmp=x;
x=y;
y=tmp;
print(“x=%d,y=%d/n”,x,y);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
扩展资料:
printf用法:
printf()函数的调用格式为:printf("lt;格式化字符串gt;",lt;参量表gt;)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d\n",a);
输出结果为a=1234。
区别:对形参的影响不同
1、在传值中函数参数压栈的是参数的副本,任何的修改是在副本上作用,没有作用在原来的变量上。
2、传址中压栈的是指针变量的副本,当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
扩展资料
函数传参有三种传参方式:传值、传址、传引用。
1、按值传递
(1)形参和实参各占一个独立的存储空间。
(2)形参的存储空间是函数被调用时才分配的,调用开始,系统为形参开辟一个临时的存储区,然后将各实参传递给形参,这是形参就得到了实参的值。
2、地址传递
地址传递与值传递的不同在于,它把实参的存储地址传送给形参,使得形参指针和实参指针指向同一块地址。因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。
3、引用传递
引用传递是以引用为参数,则既可以使得对形参的任何操作都能改变相应数据,又使函数调用方便。引用传递是在形参调用前加入引用运算符“”。
引用为实参的别名,和实参是同一个变量,则他们的值也相同,该引用改变则它的实参也改变。