• 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。此号好理解,按位取反。

  • 相关阅读:
    Java transient 关键字
    Android学习资料收集
    mac 关闭&&显示隐藏文件命令
    Android 学习资源收集
    Android Studio 快捷键
    Volley框架使用笔记
    Jni :三维数组处理方法 ,以整形三维数组为例 C++实现
    Git使用- 基本命令
    Jni 调试 : eclipse + Vs 联合调试
    Java 调用 C++ (Java 调用 dll)康哥手把手教你
  • 原文地址:https://www.cnblogs.com/wmx-learn/p/5326440.html
Copyright © 2020-2023  润新知