C语言中,一个真表达式的值什么时候等于ture什么时候等于1?

如题所述

一般来说,在逻辑表达式里,false就等于0,而非零的就是True.

所以你的这个问题,你都说了是"真表达式"了,那它就是用来判断是否"为0"或者"为假".
什么时候等于1这个说法不切实,应该说"非0",那为true的时候肯定就是"非0"了.追问

9.表达式:10!=9的值是( )
A. true B.非零值 C. 0 D. 1

这题标答是A为什么

追答

上面是一个测试.
真表达式的结果是True/False,它的值(如果取值的话)就是非零/零. 为了简单处理,就用1/0


比如下面

int a = 5;

if (a && a!=0)

{

   a--;

}

上面两个判断一个非0一个为真.

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-09-29

C语言相当独特。在C语言中,true就是1,除了拼法,二者没有任何差别


true宏是在<stdbool.h>中定义的,它的定义就是

#define true 1

追问

9.表达式:10!=9的值是( )
A. true B.非零值 C. 0 D. 1

这题标答是A为什么

追答

标准答案搞错了呗,要不自己写个程序测试一下

#include <stdio.h>
#include <iso646.h>
int main() {
if ((10!=9) not_eq 1)
    printf("表达式:10!=9的值不是1");
else
    printf("表达式:10!=9的值就是1,标准答案错了");
}

追问

可以帮我测试一下么?

追答

表达式:10!=9的值就是1,标准答案错了

顺带一提,因为这段代码没有#include ,在C语言模式(代码文件后缀名是 .c )如果写 if ((10!=9) not_eq true) 的话就会报错

本回答被提问者采纳
相似回答