swap(&a,&b)和swap(a,b)在以下题目中有什么区别?

#include<iostream>usingnamespacestd;voidswap(int*a,int*b){int*temp;temp=a;a=b;b=temp;... #include<iostream>
using namespace std;
void swap(int *a,int *b)
{
int *temp;
temp=a;
a=b;
b=temp;
}
void main()
{
int a,b;
cin>>a>>b;
swap(a,b);
cout<<a<<" "<<b<<endl;
}
展开
 我来答
沧海雄风2009
2011-09-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2720万
展开全部
一楼说的不对

你的程序我试过了 在这里
cin>>a>>b;
swap(a,b); 这个是对的 swap(&a,&b) 是错的

因为
void swap(int *a,int *b)
是指针 所以需要传值

而传地址的话 相当于 *a *b 指向地址 然后把*a *b 指向的地址值交换了一下

所以后面输出 数值不变

当传地址时 结果如下

3 4
0012FF7C 0012FF78
3 4
Press any key to continue

#include<iostream>
using namespace std;
void swap(int *a,int *b)
{
int *temp;
cout<<a<<" "<<b<<endl;
temp=a;
a=b;
b=temp;
}
void main()
{
int a,b;
cin>>a>>b;
swap(&a,&b);
cout<<a<<" "<<b<<endl;
}

有疑问请追问 满意记得采纳

在传地址时 是调用的你写的swap

在传值时 是调用的系统的 inline 函数 swap

传值时你把你写的swap 注释掉也不影响

传值时单步调试时不进你写的swap
hyt4399
2011-09-21 · TA获得超过5068个赞
知道大有可为答主
回答量:7985
采纳率:60%
帮助的人:6067万
展开全部
swap(a,b)是将ab的值传递,而swap(&a,&b)是传递的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
furious_tauren
2011-09-21 · TA获得超过4053个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:733万
展开全部
1,首先你的swap函数是写错了的!!!变量前面都要加*才能达到交换的目地。

void swap(int *a,int *b)
{
int *temp;
*temp=*a;
*a=*b;
*b=*temp;
}

2,因为swap的参数是(int*a, int*b),所以传参时要传地址,即swap(&a, &b); &a即取a变量的地址。
swap(a,b)是错误的,编译不通过!
更多追问追答
追问
可以通过啊,swap(a,b);可以输出交换后的知,但swap(&a, &b)这输出后没变化???
不信你试试.
追答
hello.c: 在函数‘main’中:
hello.c:15: 警告:传递‘swap’的第 1 个参数时将整数赋给指针,未作类型转换
hello.c:4: 附注:需要类型‘int *’,但实参的类型为‘int’
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
itoyou
2011-09-21 · 超过16用户采纳过TA的回答
知道答主
回答量:161
采纳率:0%
帮助的人:51.7万
展开全部
你程序有问题。我帮你改了:
#include<iostream>
using namespace std;
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;

}
void main()
{
int a,b;
cin>>a>>b;
swap(&a,&b);
cout<<a<<" "<<b<<endl;
}

由于你定义swap函数的时候里面的参数是指针型,所以你在传实参的时候要用变量的地址&a,&b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式