鱼C论坛

 找回密码
 立即注册
查看: 2359|回复: 3

逻辑运算符的实例问题

[复制链接]
发表于 2016-8-6 15:07:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main()
{
        int ia=10 ,ib=0;
        printf("the 1 is Ture,0 is False\n");
        printf("5<ia&&ib is %d\n",5<ia&&ib);
        printf("5<ia||ib is %d\n",5<ia||ib);
        ib=!!ia;
        printf("ib is %d\n",ib);
        return 0;

}

显示的是0 1 1       但是我不懂第三个输出为什么是 1 还有前面两个的含义是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-9 14:42:58 | 显示全部楼层
<的优先级高于&&和||
先算5<ia为真,1&&ib为假输出0
同理1||ib为真
第三个!ia为0,!0为1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-9 23:19:49 | 显示全部楼层
你可以去看看小甲鱼的算术符的优先级别
第一个:先算5是不是小于ia,得出是真值,即1。然后算1 && ib,即1且0,得出的是假值,即0,所以最终输出0
第二个:先算5是不是小于ia,得出是真值,即1。然后算1 || ib,即1或0,得出的是真值,即1,所以最终输出1
第三个: 等号是把右边的全部内容赋值给左边。ia是10,即真值(一切非0的数都是真值), !ia即非真值,那   么就是假值,然后再加一个!,就是非非真值,最终得出来的就是真值,即1.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-29 01:29:38 | 显示全部楼层
你去看一下逻辑算符的运算规则
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 08:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表