C语言中逻辑表达式和关系表达式的值为真时,到底是用非0的任何数表示还是只能用1来表示?

2024-11-01 11:53:23
推荐回答(5个)
回答(1):

在C语言中,逻辑值“真”用数字1表示,逻辑值“假”是用数字0表示。在c语言中,任何非0数字都能够被系统解释为“逻辑真”。

逻辑运算的值也是有两种分别为真和假,C语言中用整型的1和0来表示。其求值规则如下:

1、与运算 &&

参与运算的两个变量都为真时,结果才为真,否则为假。

例如:5>=5 && 7>5 ,运算结果为真;

2、或运算 ||

参与运算的两个变量只要有一个为真,结果就为真。两个量都为假时,结果为假。

例如:5>=5||5>8,运算结果为真;

3、非运算!

参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。

例如:!(5>8),运算结果为真。

扩展资料

源代码如下:

#include

int main()

{

 //定义小编兜里的钱

double money =12.0     

//定义打车回家的费用

double cost =11.5    

printf("小编能不能打车回家呢:"); 

 //输出y小编就打车回家了,输出n小编就不能打车回家

printf("%c\n",money>=cost?'y':'n' );

return 0;

}

回答(2):

作为逻辑值来说,TRUE 是1, FALSE 是 0, 作为 布尔变量来说 只能 取值 真假(1,0).

可以打印出来看:
#include
#include
main(){
printf("%d %d",TRUE, FALSE);
return 0;
}
-------
用 逻辑运算符 和 关系运算符 来运算时,表达式里 允许用什么 数值,便可用什么数值。

非0的任何数 是 数,不等同 逻辑值。例如, 2 ,3 ,4 , -3, 是 数。
int x = 3;
printf("%d\n",!x); (非x) 打印出 0
x 等于 0, (非x) 打印出 1。其它情况 ,打印出 0
不能说,非0的任何数 都是真。
而是说 非0的任何数 的 非运算的结果 都是 真。

回答(3):

实际上在C语言中是没有布尔类型的,任何中任何非0都表示真,0表示假。

比如:

if(1&&2&&3&&4){
    printf("true");
}

上面的结果是输出true,表明1、2、3、4都是真,这就印证了开头的那句话。

但是在实际应用中为了方便使用,通常还是用1来表示true,0表示false来实现布尔类型。

比如windows中minwindef.h中的定义:

#ifndef FALSE
#define FALSE               0
#endif
 
#ifndef TRUE
#define TRUE                1
#endif

回答(4):

逻辑表达式中,任何非零数都可以当做真即1,而假只用0来表示
关系表达式中它的结果只有1和0

回答(5):

如果是逻辑表达式的结果,那么真就只能用1表示 因为逻辑的结果只有1 和0