继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

日常手记之运算符优先级

渣渣小白
关注TA
已关注
手记 6
粉丝 33
获赞 64

运算符在C语言程序中必不可少,运算符的优先级也决定了程序的运行结果,我们一定要熟记重要运算符优先级的顺序。
笔者认为较好的优先级顺序在这儿:
(感谢)

http://blog.csdn.net/u013630349/article/details/47444939
口诀:

括号成员第一; //括号运算符[]() 成员运算符. ->

全体单目第二; //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算*、&乘除余三,加减四; //这个"余"是指取余运算即%

移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等

等于(与)不等排第七; //即== 和!=

位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)

"三分天下"八九十;

逻辑或跟与; //逻辑运算符:|| 和 &&

十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)

条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高

逗号运算级最低! //逗号运算符优先级最低

这些口诀可以帮助我们快速记忆优先级

优先级的记忆可以帮我们快速理解程序,省的像我昨天搞错优先级,很简单的题算了好久,特别是那些经常记错的的优先级。给几道例题:

 #include <stdio.h>
    int main()
    {
        double b = 5 % 3 & 4 + 5 * 6;
        printf("%lf", b);
    }

就像这道题参照优先级计算就很简单&(按位与)的优先级除了等号就是他最低,先算&两边的,最后很快得出结果output=2.000000. 搞错优先级的话是计算不对结果的。同时也要注意按位与,按位或的计算方式,都是先转变为二进制再进行计算。
希望在以后的学习过程中更多的注重细节,争取成为一个更优秀的程序员。


类似的题目还有:

#include <stdio.h>
    void main()
    {
        double b = 5 & 3 && 4 || 5 | 6;
        printf("%lf", b);
    }

output=1.000000

 #include <stdio.h>
    int main()
    {
        int b = 5 + 7 * 4 - 9 * (3, 2);
        printf("%d", b);
    }

output=15(注意逗号运算符的用法)

#include <stdio.h>
    int main()
    {
        int h = 8;
        int b = 4 * 6 + 3 * 4 < 3 ? 4 : 3;
        printf("%d\n", b);
    }

output=3
这道题三目运算符的优先级最低,先算乘法, 加法,最后再三目运算符。
感谢

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP