#include<stdio.h>
main()
{
int m=0,n=1,x;
x=(m=5<3)&&(n=7>9);//对于&&来说.前面5>3已经为0了.后面可能编译器不再往下算了.后面是什么均无所谓.
printf("%d\n",x);
printf("%d\n",n);//编译器没往下算.要输出N值.按初值输出
}结果为:0和1.
#include<stdio.h>
main()
{
int m=0,n=1,x;
x=(m=5>3)&&(n=7>9);//对于&&来说.前面5>3为1了.必须还得算后面算才能确定值..
printf("%d\n",x);
printf("%d\n",n);//上面表达式已经往后算了.按实际输出.
}
结果为:0和0.
#include<stdio.h>
main()
{
int m=0,n=1,x;
x=(m=5<3)||(n=7>9);//同理.但对于||来说.5<3为0.还得往后算.才能确定唯一的值.
printf("%d\n",x);
printf("%d\n",n);//上面已经往后算了.N值按实际输出.
}
结果为:0和0.
#include<stdio.h>
main()
{
int m=0,n=1,x;
x=(m=5>3)||(n=7>9);//而这里.5>3为1了.对于||来说.可能编译器又不往下算了.后面是什么又无所谓.
printf("%d\n",x);
printf("%d\n",n);//直接就输出初值.
}
结果为:1和1.
运行这几个程序.就知道是怎么回事了.我想是这样的.不知道对不对...