求解一道C++的读程序写结果的题。

#include<iostream>usingnamespacestd;voidfunc(int*,int*,int*&);intmain(){inta=10,b=20;... #include <iostream>
using namespace std;
void func(int*,int*,int*&);
int main()
{
int a=10,b=20;
int *p=&a,*q=&b;
func(p,q,p);
cout<<"*p="<<*p<<",*q="<<*q<<endl;
}
void func(int*t1,int*t2,int*&rt)
{
*t1+=5;*t2+=5;
rt=t1;
*rt+=5;
cout<<"*t1="<<*t1<<",*t2="<<*t2<<",*rt="<<*rt<<endl;
}
正确答案是:
*t1=20,*t2=25,*rt=20
*p=20,*q=25

我其他答案都算出来的,但算出t1的值是15,求大神解答为什么t1的值是20.
展开
 我来答
szwpvz
2015-07-05 · TA获得超过640个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:253万
展开全部
rt=t1一句把t1的地址赋给rt,即rt和t1变成同一变量了,所以后面rt加5时t1亦需+5
百度网友68b3033
2015-07-05 · TA获得超过205个赞
知道小有建树答主
回答量:508
采纳率:0%
帮助的人:194万
展开全部
因为你
rt=t1;
rt+=5
也就等于
t1+=5;
所以你的t1+=5了两次
当然是20啦
追问
恩懂啦谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式