C++指针与函数的问题,帮忙解释一下结果,为什么结果的第二行是XX而不是YX?

#include<iostream>usingnamespacestd;voidfun(chara,char*b);voidfun(char*a,char*b);void... #include <iostream>
using namespace std;
void fun(char a,char *b);
void fun(char* a,char* b);
void fun(char &a,char &b);
int main( )
{ char x='X',y='Y';
fun(&x,&y);
cout<<x<<y<<endl;
x='X',y='Y';
fun(x,&y);
cout<<x<<y<<endl;
x='X',y='Y';
fun(x,y);
cout<<x<<y<<endl;
return 0;
}
void fun(char a,char *b)
{ char c;
c=a;a=*b;*b=c;
}
void fun(char* a,char* b)
{ char c;
c=*a; *a=*b; *b=c;
}
void fun(char &a,char &b)
{ char c;
c=a; a=b; b=c;
}
展开
 我来答
sun_siliang
2011-04-21 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4488万
展开全部
fun(x,&y); //调用的是void fun(char a,char *b);
//第一个实参x是传值,调用后值不会改变,还是'X';
//第二个实参y是传地址,调用后值会改变,变成'X';
cout<<x<<y<<endl;//输出:XX
劳伤痕
2011-04-21 · TA获得超过793个赞
知道小有建树答主
回答量:364
采纳率:0%
帮助的人:442万
展开全部
void fun(char a,char *b)
{ char c;
c=a;a=*b;*b=c;
}//调用这个函数, fun(x,&y);
//它会重新分配变量a,c,指针变量b,再把x的值赋予a,把y的地址赋予b
//当执行c=a='x';a=*b='y';*b='x';(b指向y的地址,所以y的值更改为'x'
//当调用完函数后,函数中的变量c,a,b分配的存储空间会被释放,它是局部自动变量
//所以main函数中的x依然为'x',而y通过调用函数而把它的值更改为'x'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抗涵煦7i
2011-04-21 · TA获得超过132个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:0
展开全部
C++函数有取值以及取址之分,前者不会改变原来的值,后者则相反。在第一个函数后x,y的值互换,但是在第二个函数中第一个参数是取值,不会改变原来的值,而第二个参数是取址,改变了原来的值
void fun(char a,char *b)
{ char c;
c=a;a=*b;*b=c;
}a的值不会变,而b的值变成了a的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gball
2011-04-21 · 超过15用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
x='X',y='Y';
fun(x,&y);
cout<<x<<y<<endl;
调用的是
void fun(char a,char *b)
{ char c;
c=a;a=*b;*b=c;
}
因为函数参数的传递是值传递,函数中修改参数的值的,不会影响传入的变量的值。
比如c=a;不会导致a的值发生修改
而char *b 是一个指针,*b=c表示修改 b指针指向内存的值,由于b指针指向的地址是变量y的地址,因此修改该地址的的会导致变量y的值发生修改

指针懂的话,你就一定懂的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-21
展开全部
第二行:
x='X',y='Y';
fun(x,&y);
cout<<x<<y<<endl;
其中调用void fun(char a,char *b)
char a是传值,不会改变实参,char *b是传地址,会改变实参
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式