#include<stdio.h>
main()
{
int x,y,t;
scanf("%d%d",&x,&y);
if(x>y)
{
t=x;
x=y;
y=t;
}
printf("%d, \n%d\n",x,y);
return 0;
}
why use "t"?
#include<stdio.h>
main()
{
int x,y,t;
scanf("%d%d",&x,&y);
if(x>y)
{
t=x;
x=y;
y=t;
}
printf("%d, \n%d\n",x,y);
return 0;
}
why use "t"?
那怎么按顺序输出3个或以上的数呢?
谢谢
使用中间变量使某些将被覆盖的值存在另一个地方以备再次使用,
t=x;
x=y; /* x 是内存的单元,它的值被 y 覆盖*/
y=t;
x 被 y 的值更新后,x 的原值便没有了,
做为一个事前的准备,使用 t 来先存放 x 的值,
以备在 y = t; 中赋给 y 来实现值的交换。
关于一个删除整条链表的题外话,
看过很多删除整条链表的实现会类似这样写:
int DelLink(NODE* HeadNode)
{
NODE* pNode = HeadNode;
while( pNode )
{
free( pNode ); /*释放当前结点*/
pNode = pNode->Next; /*移动到下一结点(这是错误的写法,此时 pNode 已经被释放)*/
}
}
这种实现是不正确的,
此时需要借助一个中间变量(或称临时变量)才是正确实现。
int DelLink(NODE* HeadNode)
{
NODE* pNode = HeadNode, pTempNode;
while( pNode )
{
pTempNode = pNode->Next;
free( pNode );
pNode = pTempNode;
}
}
这是中间变量的一个用处的体现。