函数的参数传递有三种方式
函数的参数传递有三种方式,1)按值传递,2)以指针方式传递,3)以引用方式传递。编写一个函数交换两个变量的值为例,验证是否能实现交换,比较这三种方式的不同...
函数的参数传递有三种方式,1)按值传递,2)以指针方式传递,3)以引用方式传递。编写一个函数交换两个变量的值为例,验证是否能实现交换,比较这三种方式的不同
展开
1个回答
展开全部
#include <iostream>
using namespace std;
//传值调用
void chuanzhi(int a,int b)
{
int t=a;
a=b;
b=t;
cout<<"传值调用函数里交换完后a,b值:";
cout<<a<<" "<<b<<endl;
}
//指针传递
void zhizhen(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
cout<<"指针传递函数里交换完后a,b值:";
cout<<*a<<" "<<*b<<endl;
}
//引用调用
void yinyong(int &a,int &b)
{
int t=a;
a=b;
b=t;
cout<<"引用调用函数里交换完后a,b值:";
cout<<a<<" "<<b<<endl;
}
int main()
{
int x=2,y=4;
cout<<"传值调用前:x=2,y=4"<<endl;
chuanzhi(x,y);
cout<<"传值调用后:x="<<x<<",y="<<y<<endl<<endl;
x=2,y=4;
cout<<"指针传递前:x=2,y=4"<<endl;
zhizhen(&x,&y);
cout<<"指针传递后:x="<<x<<",y="<<y<<endl<<endl;
x=2,y=4;
cout<<"引用调用前:x=2,y=4"<<endl;
yinyong(x,y);
cout<<"引用调用后:x="<<x<<",y="<<y<<endl<<endl;
return 0;
}
写的有点多 运行完就 9 行
放在c++ 编译器里 运行下看看 就知道了
交换函数里面是肯定交换了,
而只有 指针传递和引用传递 才会对原来的变量值产生影响;
using namespace std;
//传值调用
void chuanzhi(int a,int b)
{
int t=a;
a=b;
b=t;
cout<<"传值调用函数里交换完后a,b值:";
cout<<a<<" "<<b<<endl;
}
//指针传递
void zhizhen(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
cout<<"指针传递函数里交换完后a,b值:";
cout<<*a<<" "<<*b<<endl;
}
//引用调用
void yinyong(int &a,int &b)
{
int t=a;
a=b;
b=t;
cout<<"引用调用函数里交换完后a,b值:";
cout<<a<<" "<<b<<endl;
}
int main()
{
int x=2,y=4;
cout<<"传值调用前:x=2,y=4"<<endl;
chuanzhi(x,y);
cout<<"传值调用后:x="<<x<<",y="<<y<<endl<<endl;
x=2,y=4;
cout<<"指针传递前:x=2,y=4"<<endl;
zhizhen(&x,&y);
cout<<"指针传递后:x="<<x<<",y="<<y<<endl<<endl;
x=2,y=4;
cout<<"引用调用前:x=2,y=4"<<endl;
yinyong(x,y);
cout<<"引用调用后:x="<<x<<",y="<<y<<endl<<endl;
return 0;
}
写的有点多 运行完就 9 行
放在c++ 编译器里 运行下看看 就知道了
交换函数里面是肯定交换了,
而只有 指针传递和引用传递 才会对原来的变量值产生影响;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |