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
慕的地10843
TA贡献1785条经验 获得超8个赞
楼主你好!printf()函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。这里题目返回整数1。由于'0'的ascii码为48,属于非0!while()函数括号里的非0相当于true,0相当于false。所以只要是括号里为非零,都是true!
答案是b
- 2 回答
- 0 关注
- 189 浏览
添加回答
举报
0/150
提交
取消