我们以if(expression) {...}
为例。我们都知道如果表达式为真,它将在大括号中执行行。但是C中的“真实”是什么?
那是!= 0表示我认为是真的吗?
谢谢
答案 0 :(得分:7)
这是标准所要说的。
§6.8.4选择陈述
语法
- 醇>
selection-statement:
if ( expression ) statement
if ( expression ) statement else statement
switch ( expression ) statement
§6.8.4.1
if
语句约束
- if语句的控制表达式应具有标量类型。
醇>语义
- 在两种形式中,如果表达式比较不等于0,则执行第一个子语句。在else表单中,如果表达式比较等于0,则执行第二个子语句。如果通过标签到达第一个子语句,则第二个子语句子语句没有被执行。
- 醇>
else
与词汇最接近的前一个相关联,如果允许的话 语法。
答案 1 :(得分:3)
任何非零结果测试均为真。
答案 2 :(得分:2)
是的,在C和C ++中,true不是-null。