我姐姐的机子没编译软件
我也看不了
要我发个给你吗???
----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
int a=5,b=6,c=1,x=2,y=3,z=4;
c=(a=c>x)&&(b=y>z);
printf("%d,%d,%d",a,b,c);
}
要不你把程序变动一下..
c=(a=c<x)&&(b=y<z);
弄来看看结果...可以不
----------------解决方案--------------------------------------------------------
结果a,b,c 都等于1.
----------------解决方案--------------------------------------------------------
本论坛 knocker(老K)的回答是:&&操作符只有当其前面的表达式不为0时才执行后面的表达式
||这样的话前面正确就不执行后面
----------------解决方案--------------------------------------------------------
本论坛 knocker(老K)的回答是:&&操作符只有当其前面的表达式不为0时才执行后面的表达式
||这样的话前面正确就不执行后面
#include "stdio.h"
main()
{
int a=5,b=6,c=1,x=2,y=3,z=4;
c=(a=c>x)&&(b=y>z);
printf("%d,%d,%d",a,b,c);
}
在次谢谢 福尔摩斯 和 老K。。特别是福尔摩斯的热心帮助。。。
----------------解决方案--------------------------------------------------------
b真的是6。
不信你自己运行这段程序试试。。
看来楼主还需要努力 啊
&& 前面的表达式不为0时才会去执行后面的表达式
前面为0 后面就不需执行了 b的值也就不会变拉
----------------解决方案--------------------------------------------------------
后面没看 问题以解决了啊 呵呵
----------------解决方案--------------------------------------------------------
结果a,b,c 都等于1.
怎么我就没想到呢???
----------------解决方案--------------------------------------------------------
a=c>x 这个式子的值为0,所以复职给a,a当然等于0.由于运算符&&只有左边的表达式为真的时候给进行后面表达式的运算.这里前面表达式为假,也就是0.所以后面表达式不做运算.所以b当然是不变的拉.所以a=0,b=6,c=0
----------------解决方案--------------------------------------------------------
c=(a=c>x)&&(b=y>z);
首先,我们先考虑 (a=c>x) 这个成立不成立,c=1,a=5,x=2;c>x,不成立,那么c>x的值为0,即a=0.在c语言中如果"&&"运算符前面的值为0那么就不回再求"&&"后面的值.而整"&&"运算的值为0.这时,c=0.由于没有在求b=y>z的值所以b的值不变是6.最后a=0,b=6,c=0.
----------------解决方案--------------------------------------------------------