C++看程序写结果

voidfun(intx,int&y){intt=x;x=y;y=t}voidmain(){inta[2]={12,23};fun(a[1],a[0]);cout<<a[... void fun(int x, int &y){ int t=x;x=y;y=t }
void main()
{
int a[2]={12,23};
fun(a[1],a[0]);
cout<<a[0]<<,<<a[1]<<endl ;}
我不是很懂,fun()定义了一个整型x,一个整型y,而y是取地址的。
给定函数fun(a[1],a[0]),是不是x的值为23,&y的值为12?
然后语句{ int t=x;x=y;y=t },我的感觉是y对应的是地址,x是一个数,两个怎么能交换,而且就算能交换,输出结果为什么不是23,12?
展开
 我来答
459520690
2013-01-01 · 超过33用户采纳过TA的回答
知道答主
回答量:162
采纳率:0%
帮助的人:103万
展开全部
输出的都是23吧?
更多追问追答
追问
嗯!为什么啊?我就是前面说的那些都不懂。。。
追答
&y是把y在内存中的地址传入函数中去了,也就是说把y自己给传入函数中了,所以y的值会改变,而x没有,x就像是把它的复印件传入函数中,x本身便没有受到影响,懂了吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式