c语言中表达式的运算顺序由优先级和结合性决定。

1.先按运算符优先级运算。2.如果相邻若干个运算符优先级相同,则按结合方向来运算。

比如:1+2-3*4的运算为:有优先级先做*运算,3*4得到12;表达式为1+2-12,算数运算符为从左到右的结合方向,即先做+运算,再做-运算。

下面是c语言运算符的优先级和结合性:

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

--

()

圆括号

(表达式)/函数名(形参表)

--

.

成员选择(对象)

对象.成员名

--

->

成员选择(指针)

对象指针->成员名

--

2

-

负号运算符

-表达式

右到左

单目运算符

~

按位取反运算符

~表达式

++

自增运算符

++变量名/变量名++

--

自减运算符

--变量名/变量名--

*

取值运算符

*指针变量

&

取地址运算符

&变量名

!

逻辑非运算符

!表达式

(类型)

强制类型转换

(数据类型)表达式

--

sizeof

长度运算符

sizeof(表达式)

--

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

%

余数(取模)

整型表达式%整型表达式

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

5

<< 

左移

变量<<表达式

左到右

双目运算符

>> 

右移

变量>>表达式

6

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

小于

表达式<表达式

<=

小于等于

表达式<=表达式

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

表达式1?

表达式2: 表达式3

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

--

/=

除后赋值

变量/=表达式

--

*=

乘后赋值

变量*=表达式

--

%=

取模后赋值

变量%=表达式

--

+=

加后赋值

变量+=表达式

--

-=

减后赋值

变量-=表达式

--

<<=

左移后赋值

变量<<=表达式

--

>>=

右移后赋值

变量>>=表达式

--

&=

按位与后赋值

变量&=表达式

--

^=

按位异或后赋值

变量^=表达式

--

|=

按位或后赋值

变量|=表达式

--

15

逗号运算符

表达式,表达式,…

左到右

--

c语言中表达式的运算顺序相关推荐

  1. c语言表达式的运算顺序

    C语言中表达式的运算顺序由优先级和结合性决定. 1.先按运算符优先级运算.2.如果相邻若干个运算符优先级相同,则按结合方向来运算. 比如:1+2-3*4的运算为:有优先级先做*运算,3*4得到12:表 ...

  2. 关于C语言中表达式运算顺序(优先级、结合性、副作用、序列点)的讨论以及c语言未定义行为

    什么是优先级 到底什么是c语言的优先级? 我以前看了国内的很多教程,对于优先级的描述大多都是这样说的"优先级是用来决定当多个运算符出现在同一个表达式中时,先执行哪个运算符".其实这 ...

  3. c语言复合运算,C语言中复合赋值运算,表达式等知识(DOC可编).doc

    C语言中复合赋值运算,表达式等知识(DOC可编).doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如 ...

  4. c语言复合赋值表达式题目,C语言中复合赋值运算,表达式等知识.doc

    C语言中复合赋值运算,表达式等知识.doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如下所示:+= ...

  5. c语言中函数参数处理顺序以及默认参数原则

    c语言中函数参数处理顺序 下面我们来看2个案例,分析下c语言中函数参数处理顺序. 第一个: #include "stdio.h"void fn(int a,int b,int c) ...

  6. C语言中的位运算和逻辑运算

    位运算 C语言中的位运算包括与(&),或(|),亦或(^),非(~). 下面的代码包扩了这些基本运算,还有一个两个数的交换(不用第三个数). #include<stdio.h> # ...

  7. C语言中的移位运算乘法,C语言中 移位操作运算

    移位规律: 左移时总是移位和补零.右移时无符号数是移位和补零,此时称为逻辑右移;而有符号数大多数情况下是移位后补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移.(其实跟扩展逻辑一样 ...

  8. C/C++ 语言中表达式的求值

    原文http://www.math.pku.edu.cn/teachers/qiuzy/technotes/expression2009.pdf C/C++ 语言中表达式的求值  裘宗燕  北京大学数 ...

  9. c语言4字节移位运算,深入懂得C语言中的移位运算

    深入理解C语言中的移位运算 说明:本文主要摘录自<深入理解计算机系统>第二章信息的表示与处理. 移位运算: C语言还提供了一组移位运算,以便向左或者向右移动位模式.对于一个位表示为[xn- ...

最新文章

  1. data的值 如何初始化vue_vue data恢复初始化数据的实现方法
  2. TIOBE 6 月榜单: Python 有望超越 C 语言成为第一名
  3. 我人生的贵人系列之 - 文深刘
  4. AndroidStudio编译提示Could not find com.android.tools.lintlint-gradle26.1.3问题的解决
  5. 卷积核里面的参数怎么来的_FSNet:利用卷积核概要进行深度卷积神经网络的压缩...
  6. windows杀死指定端口号
  7. hive olap 数据仓库_数据仓库系统的实现和使用(含OLAP重点讲解)
  8. MyBatis 传递多个参数
  9. 存储技术与iSCSI
  10. 群晖218 修改服务器名称,一次换群晖引发的各种事情——论如何榨干218+的价值【不完全版】...
  11. python读取命令行输入-python获取命令行输入参数列表
  12. python怎么安装pip
  13. PIX防火墙security context配置手册(虚拟防火墙技术)
  14. 中心频点计算公式_5G中的频点计算及实例分析
  15. 为 Electron / Atom Shell 设置应用icon(应用图标)
  16. gdb 调试 redis-cli 命令发送接收流程
  17. 笔记本损耗60 计算机提示,笔记本电池损耗60%多怎么处理!
  18. ADO连接MySql数据库之通过连接字符串
  19. adb remount 报错:Binder ioctl to enable oneway spam detection failed: Invalid argument
  20. windows 10 笔记本无法连接无线网,显示已关闭

热门文章

  1. 联华超市构建商业智能系统
  2. 在不支持avx指令集的cpu上部署tensorflow及keras.
  3. 计算机毕业设计(附源码)python缘来有交友平台系统
  4. 杂牌摄像头-SRS-GB28181
  5. 【蓝桥杯单片机(17)】第六届蓝省赛-温度记录器
  6. 3台计算机能组家庭组吗,win7如何启用家庭组图文教程
  7. 豌豆淘打造“云创业”领跑电商新经济,重磅推出科技创业新模式
  8. httpd(阿帕奇)跟nginx的区别
  9. 神经网络教材推荐,神经网络经典书籍
  10. mysql groupBy 按日期分组