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)+ ...
随机推荐
- es6异步解决方案
最初使用回调函数 由于最初j s官方没有明确的规范,各种第三方库中封装的异步函数中传的回调函数中的参数没有明确的规范, 没有明确各个参数的意义, 不便于使用. 但是node中有明确的规范 ...
- AI Web 2.0
kali: 192.168.0.103 目标机:192.168.0.105 0X01 扫描端口和目录 a)扫描端口 开启了80和22端口 b)扫描目录 看到两个敏感字样的目录 尝试访问/webadmi ...
- ubuntu18.04误删apt-get命令恢复总结
1.背景 由于使用aptitude命令替换了apt-get命令后感到后悔,想要恢复apt-get命令,特此总结以下踩过的坑 aptitude和apt-get的区别:https://www.cnblog ...
- AD常用命令以及概念
活动目录服务器常用命令合集如下: net accounts 查看第一台域控的计算机角色net accounts 查看计算机角色net share 查看共享netdom query fs ...
- 【Java】实验代码整理(多线程、自定义异常、界面)
1.界面+文件输入输出流 package finalExam; import java.awt.BorderLayout; import java.awt.Container; import java ...
- dir()和vars()的区别就是
------------恢复内容开始------------ dir()只打印属性(属性,属性......) 而vars()则打印属性与属性的值(属性:属性值......) >> a='a ...
- 浅谈python的第三方库——pandas(终)
作为pandas系列的最终章,本文引出一个数据"复制"问题. 示例如下: 从上图中可以看到:我们对data_pd做了删除一行的操作,但是这并没有改变变量data_pd在内存中的值, ...
- [51nod 1126] 求递推序列的第N项 - 矩阵乘法
#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 7; struct ...
- java文本文件加密
加密方法是通过输入流对源文件字符逐个读取,对其读取到字符的ascll值进行异或运算,并将其放入新文件中,解密时只要用相同的密钥进行ascll异或运算并向新文件输出即可,即对文件首次用该程序处理为加密, ...
- win10修改jupyter notebook默认路径
安装anaconda3 ,因此自带jupyter notebook 发送到jupyter notebook到桌面快捷方式 右击属性,将目标的%USERPROFILE%,修该为自己需要的路径 起始位置修 ...