有这样一个题想问?

jick7841 2002-03-05 05:41:00
设 a=5,b=6,c=7,d=8,m=2,n=2执行
(m=a>b)&&(n=c>d)
后的n的值
a)1 b)2 c 3 d 4
请各位大虾帮助!!!谢谢!!!!!!!
...全文
25 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunshine_shen 2002-03-07
  • 打赏
  • 举报
回复
为什么不自己测试一下?
梅雪香 2002-03-07
  • 打赏
  • 举报
回复
of course ,为什么还有人不会呢
ddszhan 2002-03-07
  • 打赏
  • 举报
回复
n的值应该是2,因为exp1&&exp2,当exp1为0时,将不执行exp2,即短路定理。
同理,exp1||exp2,当exp1为1时,将不执行exp2。
cppTrier 2002-03-07
  • 打赏
  • 举报
回复
同意楼上的,是短路表达式,&&后的语句没被执行。
zosatapo 2002-03-07
  • 打赏
  • 举报
回复
这个是最基本的“短路表达式”怎么还很多人不明白呢?
好好注意一下自己的基本功呀,中国的程序员。

短路表达式是为了提高程序运行效率的,也就是如果第一个
表达式部分已经可以决定整个表达式的取值的话,我们就
没有必要对后面的表达式进行求值了。

而绝对不是先全部求值的,“短路表达式”主要用&&和||.
toulouse 2002-03-06
  • 打赏
  • 举报
回复
2
dlgab 2002-03-06
  • 打赏
  • 举报
回复
a=5,b=6,c=7,d=8,m=2,n=2执行
(m=a>b)&&(n=c>d)
n=0
因为C>D的值为假(0)
所以N的值为0
tiande8012 2002-03-06
  • 打赏
  • 举报
回复
2
snewxf 2002-03-06
  • 打赏
  • 举报
回复
2
(m=a> b)& & (n=c> d)这儿的a>b 为零,既M=0所以这个表达式就结束了。它跟本就没有计算(N=C>D).
arthursky 2002-03-05
  • 打赏
  • 举报
回复
其实,自己写一个程序试一下不是更好
晨星 2002-03-05
  • 打赏
  • 举报
回复
2。
earthharp 2002-03-05
  • 打赏
  • 举报
回复
2
boystodoys 2002-03-05
  • 打赏
  • 举报
回复
2
dennis_duan 2002-03-05
  • 打赏
  • 举报
回复
sorry, 是我错

没有看清前面:(
color918 2002-03-05
  • 打赏
  • 举报
回复
有没有搞错,c会大于d, n的值仍然等于2了,因为你上面的式子应该是一个判断的条件,当第一个条件m=a>b的值为FALSE时,将不在执行n=c>d的判断,所以n值不变,如果把n=c>d和m=a>b交换一下,则n值就为0了!!
lmfree 2002-03-05
  • 打赏
  • 举报
回复
2
lmfree 2002-03-05
  • 打赏
  • 举报
回复
2
dennis_duan 2002-03-05
  • 打赏
  • 举报
回复
n=1

也就是a)

因为c>d返回的是个True,在C语言中,true和false都是用short表示的,也就是1和0

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧