为了账号安全,请及时绑定邮箱和手机立即绑定

为什么答案是B 怎么理解?

为什么答案是B 怎么理解?

C
守着星空守着你 2022-12-21 19:15:19
C语言:while(printf("x"))内的表达式为什么与'0'等价,如何解释? t=0; while(printf("*")) { t++; if(t<3) break; } 下面描述正确的是: A 其中循环控制表达式与0等价 B 其中循环控制表达式与'0'等价 C 其中循环控制表达式是不合法的 D 以上说法都不对 
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

他说的是printf("*")与‘0’等价
其实是这样的
printf这个函数的
返回值
是输出字符的个数
现在printf("*")的返回值是1
在while里只有0
和非0两种
所以只要选排一个非0的就能说是等价的
而‘0’需要转成ASCII码看是不为0的
所以选B

查看完整回答
反对 回复 2022-12-25
?
慕的地10843

TA贡献1785条经验 获得超8个赞

楼主你好!printf()函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。这里题目返回整数1。由于'0'的ascii码为48,属于非0!while()函数括号里的非0相当于true,0相当于false。所以只要是括号里为非零,都是true!
答案是b

查看完整回答
反对 回复 2022-12-25
  • 2 回答
  • 0 关注
  • 189 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信