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

 我来答
小夏聊生活
高能答主

2019-12-10 · 专注于分享生活知识,热爱生活
小夏聊生活
采纳数:448 获赞数:114615

向TA提问 私信TA
展开全部

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

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

1、与运算 &&

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

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

2、或运算 ||

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

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

3、非运算!

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

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

扩展资料

源代码如下:

#include <stdio.h>

int main()

{

 //定义小编兜里的钱

double money =12.0     

//定义打车回家的费用

double cost =11.5    

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

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

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

return 0;

}

l7722526
2017-09-12 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3796万
展开全部
作为逻辑值来说,TRUE 是1, FALSE 是 0, 作为 布尔变量来说 只能 取值 真假(1,0).

可以打印出来看:
#include <stdio.h>
#include <windows.h>
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的任何数 的 非运算的结果 都是 真。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9f8ba65
2017-09-27 · TA获得超过1018个赞
知道小有建树答主
回答量:384
采纳率:86%
帮助的人:94.7万
展开全部

实际上在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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳顶天鹿鼎记
2013-07-29 · TA获得超过502个赞
知道小有建树答主
回答量:675
采纳率:100%
帮助的人:406万
展开全部
逻辑表达式中,任何非零数都可以当做真即1,而假只用0来表示
关系表达式中它的结果只有1和0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lest12345
2013-07-29 · TA获得超过1441个赞
知道小有建树答主
回答量:1064
采纳率:100%
帮助的人:773万
展开全部
如果是逻辑表达式的结果,那么真就只能用1表示 因为逻辑的结果只有1 和0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式