求解C语言中的一问题t=a;a=b;b=t

我在学习C语言中每碰到像t=a;a=b;b=t;这类的语句就觉得蛮别扭,也好像是学数学学的转不过弯来,常理认为对于t只赋了一个值,但却出现t=a;后又出现b=t的形式,这... 我在学习C语言中每碰到像t=a;a=b;b=t;这类的语句就觉得蛮别扭,也好像是学数学学的转不过弯来,常理认为对于t只赋了一个值,但却出现t=a;后又出现b=t的形式,这不就是对t赋了两个值吗?哎!看不懂,哪位高手能帮我释疑啊?这里面是什么原理啊? 展开
 我来答
楚梦秋I1
2009-04-28 · 超过13用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:0
展开全部
我是三楼的…不好意思…刚讲反了…t=a就是a的值转到t上,t原来的值就被抹去了,然后b的值又转到a上,t的值(也就是刚刚a转过来的值)被赋到了b上。最后就是b是原来a的值,a是原来b的值,t是跑龙套的~这和S=S+i是一个道理,每次S+i得到的值都重新被赋到S上,也就是之前的S值就没有了。
不知道你听懂么?
苍德文阿衣
2019-11-19 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:990万
展开全部
if语句如果没有大括号
默认只有一个跟随语句;
也就是说在你的第一个例子中,if语句成立
则t=a;会被执行,而a=b;b=t;什么情况下都会被执行。
而第二个例子中加了大括号,被认为是一个整体,所以if的判断条件成立与否决定了大括号里面的所有语句的执行与否。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jasonerika
2009-04-28 · TA获得超过440个赞
知道答主
回答量:168
采纳率:0%
帮助的人:166万
展开全部
这三个语句是a,b互换值的经典语句,其实很好明白。
t其实相当于一个临时储存的东西,先把a的值放在t那里,然后a去取b的值;
然后b再取t的值(即a的初值)。

“但却出现t=a;后又出现b=t的形式,这不就是对t赋了两个值吗?”
赋值号只对左值有效,所以这里只对t赋了一次值,为什么给t赋值呢?因为要存放a的值,不然a直接等于b后,b就找不到a当初的值了。
应该明白了吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
独落长秋
2009-04-28 · TA获得超过1535个赞
知道小有建树答主
回答量:606
采纳率:0%
帮助的人:674万
展开全部
首先,T=A 把A保存到T里面。
再来,A=B,A的值等于B的值(现在A变了,但是T还没变,仍是没变前A的值)
最后,B=T,令B=T,因为T保存的是A没变前的值,所以相当于AB两个值 交换了

X=Y:表示对X赋值,值为Y的值。。。
明了吧..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新世纪的大猩猩
2009-04-28 · TA获得超过373个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:163万
展开全部
是这样的,这是高二数学的程序框图里的,如果你这三个赋值是一起的,就表示:t=a就是t的值转到a上,然后a的值(其实就是刚刚的t值,又转到了b上,最后b值又转回t上,还是原来的值,这和S=S+i是一个道理,每次S+i得到的值都重新被赋到S上,也就是之前的S值就没有了。
不知道你听懂么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式