C语言运算符的优先级与结合性
结合性:左结合是从左到右依次执行,右结合是从右到左依次执行。
|
优先级 |
运算符 |
名称或作用 |
运算类型 |
结合方向 |
特点 |
|
1 |
() [] -> . |
小括号运算符 下标运算符 指向结构成员运算符 结构成员运算符 |
左结合 |
||
|
2 |
! ~ ++,-- - (类型) *,& sizeof |
逻辑非运算符 按位取反运算符 自增/减运算符 负号运算符 类型转换运算符 指针/取地址运算符 求类型长度运算符 |
单目运算 |
右结合 |
|
|
3 |
*,/,% |
乘法/除法/求余运算符 |
双目运算、算术运算 |
左结合 |
乘除取余优先于加减 |
|
4 |
+,- |
加法/减法运算符 |
双目运算、算术运算 |
左结合 |
|
|
5 |
<<,>> |
左移/右移运算符 |
双目运算、位运算 |
左结合 |
位移低于算术运算 |
|
6 |
<,<=,>,>= |
小于/小于等于/大于/大于等于 |
双目运算、关系运算 |
左结合 |
大小比较优先于等于比较 |
|
7 |
==,!= |
判等/判不等运算符 |
双目运算 |
左结合 |
|
|
8 |
& |
按位与 |
双目运算、位运算 |
左结合 |
|
|
9 |
^ |
按位异或 |
双目运算、位运算 |
左结合 |
|
|
10 |
| |
按位或 |
双目运算、位运算 |
左结合 |
|
|
11 |
&& |
逻辑与 |
双目运算、逻辑运算 |
左结合 |
且的优先级高于或 |
|
12 |
|| |
逻辑或 |
双目运算、逻辑运算 |
左结合 |
|
|
13 |
?: |
条件运算符 |
三目运算 |
右结合 |
|
|
14 |
=,+=,-=,*=,/=,%= >>=,<<=,&=,^=,|= |
赋值运算符 |
双目运算 |
右结合 |
|
|
15 |
, |
逗号运算符(顺序求值运算符) |
左结合 |
C语言运算符的优先级与结合性的更多相关文章
- [转]说说C语言运算符的“优先级”与“结合性”
补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...
- 说说C语言运算符的“优先级”与“结合性”
论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时.但从本质上看,仍然是概念理解上的偏差.本文试图通过对三个典型表达式的分析,集 ...
- [c语言]运算符的优先级与结合性
c语言中运算符的优先级和结合性常常被人混淆一谈,本文目的在于简单谈谈两者的区别.本文举几个简单的例子说明,这些运算符也特别常用. 首先要明白的是:优先级决定表达式中各种不同的运算符起作用的优先次序:而 ...
- C语言的运算符的优先级与结合性+ASCII表
[0]README 0.1) 内容来源于 C程序设计语言, 旨在整理出C语言的运算符的优先级与结合性, 如下图所示(哥子 记了大半年都没有记住,也是醉了,每次都要去翻): Alert)以下内容转自:h ...
- C语言运算符和优先级
关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下: a.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. 1) 加法:+ 还可以表 ...
- swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)
swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和 ...
- C语言左值,运算符的优先级以及结合性探讨
刚刚开始看一本书.<C陷阱与缺陷>,相信学习C语言的大家都对这本书有耳闻.今天看到了里面的贪心法则.也即在读到一个字符后,尽可能多的读入更多的字符,直到读入的字符组成的字符串已经不可能再组 ...
- C语言运算符的优先级
熟悉C语言的同学都知道,C语言众多的运算符及繁琐难记的优先级总是搞得我们这些C初学者头大.那么本文就 对C语言中所有的运算符进行汇总,并对其优先级进行一定的介绍. 这里虽然对所有C运算符的优先级进行了 ...
- c语言中 *p++ 和 (*p)++ 有什么区别?以及C语言运算符的优先级。整理。
*p++是指下一个地址. (*p)++是指将*p所指的数据的值加一. C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样:在(*p)+ ...
随机推荐
- ArcGIS Runtime SDK for Android 加载shp数据,中文乱码问题
针对ArcGIS10.2版本的解决办法(默认中文编码为OEM): 现有一个图层名称为“图层.shp”,以此为例: 1.拷贝一个cpg文件,修改名称为“图层.cpg”,并用文本打开cpg文件修改编码为“ ...
- Dart中类的getter和setter
Dart类Getters和Setter Getters和Setter(也称为访问器和更改器)允许程序分别初始化和检索类字段的值. 使用get关键字定义getter或访问器.Setter或存取器是使用s ...
- maven的核心概念——生命周期
第十一章生命周期 11.1 什么是Maven的生命周期 ●Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了. ●Maven有三套相互独立的生命周期, ...
- MySQL 8 模式匹配
MySQL 提供了两种模式匹配: 标准 SQL 模式匹配 基于扩展正则的模式匹配 SQL 模式匹配使用 LIKE 命令进行模式匹配操作, _ 匹配任意单个字符.% 匹配任意多个字符,包含 0 个字符 ...
- linux查看硬件、系统信息
查看机器型号等 dmidecode 是一个读取电脑 DMI(桌面管理接口(Desktop Management Interface))表内容并且以人类可读的格式显示系统硬件信息的工具.这个表包含系统硬 ...
- 在eclipse中JS页面创建后<%@ page此处就马上就报错
修改路径:右键点击创建的jsp页面--->Build Path--->Configure Build Path---> Libraries--->Add Libraries-- ...
- JavaSE学习笔记(3)---面向对象三大特性
JavaSE学习笔记(3)---面向对象三大特性 面向对象的三大特征:继承.封装.多态 1.封装 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改.然 ...
- 将smarty安装到MVC架构中
首先是composer.json { "require": { "smarty/smarty": "^3.1" }, // 自动加载 // ...
- Vue(三)--循环语句
v-for: v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名. demo1. <!DOCTYPE html&g ...
- 了解SIT和UAT的基本内涵
SIT:System Integration Test(系统集成测试,即内部测试)根据用例描述测试每一个场景,优化系统性能,提交数据库性能excution plan给DBA review.对系统进行压 ...