关于while(n)在c ++中没有逻辑运算符

shi*_*zou 0 c++ syntax loops

在c ++中实际做了什么while(n)(n是一个初始化的整数)?

从文档:

while-loop简单地重复语句,而表达式为true.

但是没有逻辑运算符,while(n)所以假设循环运行的方式是n到零,这是否会使它成为假?这是否意味着写作while(n)相当于while(n!=0)

Ill*_*ian 6

在C/C++中,任何非零值都被视为"真".C没有bool像C++那样的内置类型,因此这种行为对于条件语句的运行是必要的,并且可能由于多种原因而保留,而不仅仅是向后兼容性.我碰巧喜欢它,因为它可以减少长条件所需的代码量,所以我可以写if (i && j && k)而不是if (i != 0 && j != 0 && k != 0)

  • C,因为C99有`_Bool`和`<stdbool.h>`,使事物看起来更像C++. (3认同)