c语言里怎么设立优先级,细说C语言优先级

c语言里怎么设立优先级,细说C语言优先级0.为什么要掌握优先级想想这两个问题:a.读别人的代码,遇到优先级问题看不懂,怎么办?b.一堆的括号,美观吗?本想贴一张画来装饰墙壁,却用了一堆纸来固定!有人说代码写多了,自然就会了。这个是很宽泛的说法。看你写的代码的水准,有些东西可能你一直都接触不到,何谈熟练。有些东西一定要梳理,总结。1.优先级1.1优先级图表优先级最高者不是真正意义上的运算符,包括:数组下标,函数调用,结构体成员…

大家好,又见面了,我是你们的朋友全栈君。

0. 为什么要掌握优先级

想想这两个问题:

a. 读别人的代码,遇到优先级问题看不懂,怎么办?

b. 一堆的括号,美观吗?

本想贴一张画来装饰墙壁,却用了一堆纸来固定!

有人说代码写多了,自然就会了。这个是很宽泛的说法。看你写的代码的水准,有些东西可能你一直

都接触不到,何谈熟练。有些东西一定要梳理,总结。

1. 优先级

1.1 优先级图表

pri.jpg

优先级最高者不是真正意义上的运算符,包括:数组下标,函数调用,结构体成员选择符。

单目运算符的优先级次之。(! ~ ++ — – (type) * & sizeof)

然后是双目运算符。双目运算符里, 算数运算符(* / % + -)优先级最高, 移位(<< >>)次之, 关系

运算符(< <= > >= != ==)再次之, 接着是位运算符(& ^ | ),逻辑运算符(&& ||) 条件运算符(?: 三目),

赋值运算符(= …)。

任何一个逻辑运算符的优先级低于任何一个关系运算符。

移位运算符的优先级比算数运算符要低,但是比关系运算符要高。

1.2 运算符实例

a. while (c = getc(in) != EOF)

putc(c, out)

循环的意思是复制一个文件到另一个文件。但是由于!=的优先级比赋值运算符的优先级高,所以c

被赋予了getc()的返回值与EOF比较后的布尔值,结果向out中写入了一堆1.

1.3 优先级顺口溜

醋坛酸味灌

味落跳福豆

共44个运算符

醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员

坛-单目,9个: ! ~ ++ — -负号 (类型) *指针 &取地址 sizeof长度

酸-算术,5个: * / % + -减

味-位移,2个: << >>

灌-关系,6个: < <= > >= == 等于 != 不等于

味-位逻,3个: & 按位与 ^ 按位异或 | 按位或

落-逻辑,2个: && 逻辑与 || 逻辑或

跳-条件,1个,三目: ? :

福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |=

豆-逗号,1个: ,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148556.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Linux常用基本命令

    Linux常用基本命令目录文件管理cd切换目录cd绝对路径/相对路径 切换目录cd.. 返回上一级目录cd../.. 返回上两级目录cd/ 进入根目录ls列出目录ls 列出文件(不包括隐藏文件)ls-a 列出所有文件(包括隐藏文件)ls-l 列出文件和详细信息(不包括隐藏文件)ls-al 列出文件和详细信息(包括隐藏文件)pwd显示当前路径pwd 显示当前用户所在目录

  • qq打不开显示0xc0000005_0xc0000001怎么解决

    qq打不开显示0xc0000005_0xc0000001怎么解决  电脑出现网络不畅的问题很让人头疼,今天尝试了好几种方法,最终终于解决,特此进行记录。1.命令行重置单击“开始”,在开始搜索框中键入cmd,右键单击“cmd.exe”,单击“以管理员身份运行”。输入netshwinsockreset。重启电脑。  重启电脑以后问题依然存在,根据调研发现可能是注册表的问题。2.修复注册表2.1修复方法一退出所有活动的桌面任务(避免注…

  • struts定时任务实现(quartz任务调度)

    最近有需求要写一个定时任务目的是更新一些员工/人员与部门之间的关系项目用的是struts2当我加了spring的jar包之后写了一个定时任务项目经理不让用spring就修改一下这次贴个全的下面是任务类packagecom.timetask.action;importjava.io.BufferedWriter;importjava.io.File;importjava….

  • element-plus 一个vue3.xUI框架 (element-ui的3.x 版初体验)

    element-plus 一个vue3.xUI框架 (element-ui的3.x 版初体验)突然发现已经半年没更新的element-ui更新了更新了什么还不清楚,但是告知了基于vue3.x版本的element-plus已经出来了。先来上手体验一下首先安装一个最新的@vue-cli,搭建一个vue3.x的项目,脚手架创建流程已经很简洁了,这里就不多说了。建好之后,直接开始安装吧npmielement-plus为了方便,直接采取全部引入的方式src/plugins/element.tsimportElementPlusfrom’element-plus’impor

  • hdu 5077 NAND(暴力打表)

    hdu 5077 NAND(暴力打表)

  • 可访问性级别的C# 修饰符

    使用访问修饰符public、protected、internal或private可以为成员指定以下声明的访问级别之一。http://keleyi.com/a/bjad/3ccfqh95.htm

    2021年12月21日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号