真假取值问题?

windysound 2003-09-11 05:19:50
#include<stdio.h>
void main()
{
int a=3,b=4;
printf("%d\t%d\t%d\t%d",!a&&b,a&&b,a||b,!a||b);
}
这是如何取值的????为什么要得0,1,1,1阿!!??
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiracleNo1 2003-09-26
  • 打赏
  • 举报
回复
C++中由于类型收缩,多用数字如0,1,少用C中的宏NULL.
MiracleNo1 2003-09-11
  • 打赏
  • 举报
回复
优先级,逻辑运算的结果就是真假值,0和1。
C中的定义0为假,其他值为真
Zeroins 2003-09-11
  • 打赏
  • 举报
回复
&& || ! 都是逻辑运算符
a、b 都不为 0,所以 a、b 的逻辑值都为真
!a&&b 逻辑值为 假 (注意不是 !(a&&b),不一样的)
a&&b 逻辑值为 真
a||b 逻辑值为 真
!a||b 逻辑值为 真 (注意不是 !(a||b),不一样的)
c 中输出,真既为 1,假既为 0

所以结果是 0 1 1 1
耙子 2003-09-11
  • 打赏
  • 举报
回复
非0为真
0为假

!a&&b = (!a) && b = (!3) && 4 = 0 && 4 = F %% T = F = 0
a&&b = 3 && 4 = T && T = T = 1
a||b = T || T = T = 1
!a||b = (!a) || b = F || T = T = 1

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧