zoukankan      html  css  js  c++  java
  • c语言运算符号的优先级

                      c语言运算符号的优先级

    本文来自百度搜索只为查看方便

    优先级等级口诀:

      圆方括号、箭头一句号, 自增自减非反负、针强地址长度,

      乘除,加减,再移位,

      小等大等、等等不等,

      八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。

      其中“,”号为一个等级分段。

    优先级等级注释:

      “圆方括号、箭头一句号”指的是第15级的运算符。其中圆方括号很明显“()、[]”,箭头 指的是指向结构体成员运算符“->”,句号 指的是结构体成员运算符“.” ;

      “自增自减非反负、针强地址长度”指的是第14级的运算符。其中 非 指的是逻辑运算符“!”,反 指的是按位取反运算符“~”,负 指的是负号运算符“-”,针 指的是指针运算符“*”,强 指的是强制类型转换运算符,地址 指的是地址运算符“&”,长度 指的是长度运算符“sizeof ”;

      “乘除,加减,再移位”移位指的是左移运算符“<<”和右移运算符“>>”,其中除法还包括了 取余运算符“%”;

      “小等大等、等等不等” 指的是第10级到第9级的运算符:<、<=、>和>=,等等指的是等于运算符==,不等指的是不等于运算符!=

      “八位与,七位异,六位或”其中 八位与 指的是第8级的 按位与 运算符“&”,七位异 指的是第7级的按位异或运算符“^”,六位或 指的是第6级的按位或运算符“|”;

      “五与,四或”指的是第5级、第4级的逻辑与运算符“&&”和逻辑或运算符“||”;

      “三疑,二赋,一真逗”指的是第3级到第1级的运算符。其中,三疑指的是条件运算符“?:” (三有双重含义:即指优先级别是三,它的运算符类型也是三目,疑也取“?”之意),二赋 指的是赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,一真逗 指的是第1级的“,”运算符,真字只是为了语句需要罢了。

     

    应用举例:

    1、赋值运算符:a=5;

      a=b=0;

      第一个赋值语句把5赋给变量a;第二个赋值语句的意思是把0同时赋值给两个变量。这是因为赋值语句是从右向左运算的,也就是说从右端开始计算,先b=0,然后a=b。

    2、复合赋值运算符:a=1;a+=3;

      上面第二个赋值语句等价于a=a+3;即a=4。

    3、算术运算符:Area=Height*Width;num=num1+num2/num3-num4;

      第一个赋值语句Height和Width相乘结果赋给变量Area;第二个赋值语句先完成num2与num3的整除运算,然后与num1相加,再减去num4,结果赋给num。运算符运算顺序先算乘除再算加减。单目正和单目负最先运算。

    4、逻辑运算符:a=1,b=1;

      a||b-1;

      因为a=1为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。

    5、关系运算符:if(a>0)...

      如果a>0,则执行if语句中的内容,否则退出。

    6、条件运算符:a=(b>0)?b:-b;

      当b>0时,a=b;当b不大于0时,a=-b;其实上面的意思就是把b的绝对值赋值给a。

    7、逗号运算符:b=2,c=7,d=5;

      a=(++b,c--,d+3);

      有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3=8,所以a=8。

    8、位逻辑运算符

    包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符

      以操作数12为例。位运算符将数字12视为1100。位运算符将操作数视为位而不是数值。数值

      可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化为二进制,并相应地返回1或0。

      位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。例如:

      表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1

      表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。

      表达式10^15表示(1010 ^ 1111), 它将返回表示0101的值5。此时是同性相斥,相同的就为假。

      表达式~10表示(~1010),它将返回表示0101的值 -11。此号好理解,按位取反。

  • 相关阅读:
    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程
    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介
    001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学
    001 Android Studio 首次编译执行项目过程中遇到的几个常见问题
    Dora.Interception,为.NET Core度身打造的AOP框架 [2]:以约定的方式定义拦截器
    Dora.Interception,为.NET Core度身打造的AOP框架 [1]:更加简练的编程体验
    监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile
    轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑
    轻量级ORM框架——第一篇:Dapper快速学习
    CF888G Xor-MST(异或生成树模板)
  • 原文地址:https://www.cnblogs.com/wmx-learn/p/5326440.html
Copyright © 2011-2022 走看看