zoukankan      html  css  js  c++  java
  • C语言逻辑运算符顺序

    a=b=c=1; ++a||++b&&++c; 问语句执行顺序?

    a=b=c=1; ++a||++b&&++c; 问语句执行顺序?
    解答:
    “赋值语句结合性 自右向左”是正确的,所以a=b=c=1;的执行顺序是:
    c=1;
    b=1;
    a=1;

    ++a||++b&&++c;语句的执行顺序也是对的,我多啰嗦解释一下啊。

    算数运算符比逻辑运算符等级高
    首先,++出现在a之前,表示在执行“++a||++b&&++c;”语句之前完成自加运算,所以要先执行自加。同理,b和c也是先完成自加运算。这部分解释可以表述为:
    ++a;//即执行a=a+1;
    ++b;//即执行b=b+1;
    ++c;//即执行c=c+1;
    逻辑运算符号也是分等级的 !运算符等级最高,“&&的优先级比||高”,不是貌似,的确是的哦,所以
    b&&c被执行。注意,此时的b和c已经完成了自加运算。
    a||(b&&c)最后被执行。

     C语言中逻辑运算符_ ___的优先级高于算术运算符。

     逻辑非(即‘!’操作符) 优先级高于算术运算符。所有的单目操作符优先级都高于双目和三目操作符。

    C语言中逻辑运算符有三种,分别是逻辑与&&,逻辑或||,逻辑非!,其中&&相当于and,||相当于or,!相当于not,而且这三种运算符之间是有级别的,逻辑非的级别最高,其次就是逻辑与、逻辑或。也就是说当三者同时出现时,先执行逻辑非,再执行逻辑与,最后执行逻辑或。当逻辑运算符、算术运算符、关系运算符、赋值运算符同时出现时,先执行逻辑非,再执行算术运算符,然后关系运算符,加下来是逻辑与逻辑或,最后是赋值运算符。

    例如:
    if(a>b && a>c)printf("正确") 当且仅当a>b且a>c时(即两个条件要同时),此语句执行;
    if(a>b || a>c)printf("正确") 当且仅当a>b或者a>c时(即只需要满足一个条件就行),此语句执行;
    若条件a为真,!a则为假。
    a==b || x==y,先执行a==b和x==y,然后将二者合并取逻辑或运算

    其他的类推

    ————————————————————————————————————————————————————————————————————————————————

    单目运算符

     
    运算所需变量为一个的运算符叫单目运算符
    逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】
    运算所需变量为两个的运算符叫做双目运算符,例如+,-,*,/,%,<,>,>=,<=,==,!=,<<,>>,&,^,|,&&,||,=
    运算所需变量为三个的运算符叫做三目运算符,只有条件表达式【?:】
  • 相关阅读:
    Lily.Core.FileDataProvider文件管理使用范例。
    CruiseControl.NET,Nant持续集成(1)
    如何为当前进程设置环境变量?
    unix时间戳与datetime的转换函数
    Mac 平台下功能强大的Shimo软件使用指南
    如何解决源码包安装时的依赖性问题
    《Linux企业应用案例精解》一书配套视频发布
    ZoneMinder配置与使用
    网站优化IIS7下静态文件的优化
    WIN7常用功能的介绍
  • 原文地址:https://www.cnblogs.com/taoyuan7788/p/3185670.html
Copyright © 2011-2022 走看看