注册 登录
编程论坛 C语言论坛

C语言条件判断中有!

komorebi0110 发布于 2019-11-27 00:24, 1818 次点击
#include <stdio.h>
int main()
{
    int age=0;
    if(!age<10)
        printf("right");
    else printf("wrong");
    return 0;
}

请问这个if怎么看啊 我的理解是!(age<10)然后布尔值就是0,应该输出wrong呀,应该是优先级错了吧
5 回复
#2
komorebi01102019-11-27 00:29
代入几个值试了下,好像结果永远是right
#3
komorebi01102019-11-27 00:41
哦哦 是不是因为!在逻辑运算符中的优先级最高,所以!age恒等于0
#4
komorebi01102019-11-27 00:42
特殊情况!0=1
#5
bcbbcclbbc2019-11-27 11:14
你这自问自答,能想清楚了再做出解答吗,建议你查看一下资料。
还有就是如何理解“非零为真”
if(!age<10)

可以变换为if((!age)<10)。
这个表格列出了运算符的优先性。
https://zh.


[此贴子已经被作者于2019-11-27 11:45编辑过]

#6
komorebi01102019-11-28 17:57
回复 5楼 bcbbcclbbc
唉,就是喜欢自言自语总之谢谢
1