求解C语言中的一问题t=a;a=b;b=t
来源:百度知道 编辑:UC知道 时间:2024/09/28 17:43:56
我是三楼的…不好意思…刚讲反了…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容器的动西覆盖…