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

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:43:56
我在学习C语言中每碰到像t=a;a=b;b=t;这类的语句就觉得蛮别扭,也好像是学数学学的转不过弯来,常理认为对于t只赋了一个值,但却出现t=a;后又出现b=t的形式,这不就是对t赋了两个值吗?哎!看不懂,哪位高手能帮我释疑啊?这里面是什么原理啊?

我是三楼的…不好意思…刚讲反了…t=a就是a的值转到t上,t原来的值就被抹去了,然后b的值又转到a上,t的值(也就是刚刚a转过来的值)被赋到了b上。最后就是b是原来a的值,a是原来b的值,t是跑龙套的~这和S=S+i是一个道理,每次S+i得到的值都重新被赋到S上,也就是之前的S值就没有了。
不知道你听懂么?

这三个语句是a,b互换值的经典语句,其实很好明白。
t其实相当于一个临时储存的东西,先把a的值放在t那里,然后a去取b的值;
然后b再取t的值(即a的初值)。

“但却出现t=a;后又出现b=t的形式,这不就是对t赋了两个值吗?”
赋值号只对左值有效,所以这里只对t赋了一次值,为什么给t赋值呢?因为要存放a的值,不然a直接等于b后,b就找不到a当初的值了。
应该明白了吧。

首先,T=A 把A保存到T里面。
再来,A=B,A的值等于B的值(现在A变了,但是T还没变,仍是没变前A的值)
最后,B=T,令B=T,因为T保存的是A没变前的值,所以相当于AB两个值 交换了

X=Y:表示对X赋值,值为Y的值。。。
明了吧..

先把a的值传递给t
再把b的值传递给a
再把t的值传递给b
目的:a与b的值互换
t只是一个中间过度量

是这样的,这是高二数学的程序框图里的,如果你这三个赋值是一起的,就表示:t=a就是t的值转到a上,然后a的值(其实就是刚刚的t值,又转到了b上,最后b值又转回t上,还是原来的值,这和S=S+i是一个道理,每次S+i得到的值都重新被赋到S上,也就是之前的S值就没有了。
不知道你听懂么?

你要理解它们都是变量,相当于容器,首先t容器复制了a容器的东西,然后a容器复制b容器的东西,a容器原来的东西同时被b容器的动西覆盖…