C语言运算符的优先级和结合性方面的试题,C语言运算符优先级与结合性一览表.docx...
C语言运算符优先级和结合性一览表
所谓优先级就是当一个表达式中有多个运算符时,先计算谁,后计算谁。事实上在编程的时候也不需要考虑优先级的问题。因为如果不知道优先级高低的话,加一个括号就可以了,因为括号( )的优先级是最高的。比如程序中:
k = (j>i) && (8==i);
根据运算符的优先级,这条语句完全可以写成:
k = j>i && 8==i;
但是第一种写法别人一看就知道先计算谁后计算谁。而且加圆括号也是一种编程规范,因为程序不只是写给自己看。 此外运算符还有“目”和“结合性”的概念,这个很简单。“目”就是“眼睛”的意思,一个运算符需要几个数就叫“几目”。C语言中大多数的运算符都是双目的,也有单目和三目的。单目运算符比如逻辑非,如!1,它就只有一只眼睛,所以是单目的。整个C语言中只有一个三目运算符,即条件运算符? :。
优先级都是关于优先级不同的运算符参与运算时先计算谁后计算谁。但是如果运算符的优先级相同,那么先计算谁后计算谁呢?这个就是由“结合性”决定的。比如1+2×3÷4,乘和除的优先级相同,但是计算的时候是从左往右,即先计算乘再计算除,所以乘和除的结合性就是从左往右。 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语言运算符优先级与结合性一览表.docx...相关推荐
- c语言中短路逻辑有与有或例子,C语言零基础教程之运算符和表达式,全面解析,轻松上手...
运算符和表达式 运算符:运算符用于执行程序代码运算,会针对一个以上操作数来进行运算.例如:2+3,其操作数是2和3,而运算符则是"+" 操作数:是运算符作用于的实体,操作数指出指令 ...
- c语言移动通信功率计算,《移动通信软件编程基础—C语言》第3章_运算符.ppt
<移动通信软件编程基础-C语言>第3章_运算符.ppt 移动通信软件编程基础 C语言,知识回顾3,运算符,第,章,本章目标理解表达式,掌握赋值运算符和赋值表达式,掌握关系运算符和关系表达式 ...
- C语言程序入门之基本数据类型、常量与变量、运算符
目录 一.基本数据类型 1.整型 2.浮点型 3.字符型 二.常量与变量 1.常量 2.变量 三.运算符 1.算术运算符 2.关系运算符 3. 逻辑运算符 4.位运算符 5.自增自减运算符 6.赋值 ...
- c语言中除法除以1000与1e3,北京航空航天大学C语言b第二讲(第三、四章)数据类型、运算符与表达式和最简单的C程序设计.ppt...
<北京航空航天大学C语言b第二讲(第三.四章)数据类型.运算符与表达式和最简单的C程序设计.ppt>由会员分享,可在线阅读,更多相关<北京航空航天大学C语言b第二讲(第三.四章)数据 ...
- 成信大2020C语言编程114,南京信息工程大学2020考研大纲822CC语言程序设计
<南京信息工程大学2020考研大纲822CC语言程序设计>由会员分享,可在线阅读,更多相关<南京信息工程大学2020考研大纲822CC语言程序设计(8页珍藏版)>请在人人文库网 ...
- 轻松学c语言编程.pdf等,轻松学编程 轻松学C语言编程pdf
轻松学编程 轻松学C语言编程 内容简介 <轻松学编程:轻松学C语言编程>从初学者的角度出发,以通俗易懂的语言.丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识.全书共1 ...
- 全国二级c语言考试题型,2016年电大 -全国计算机二级c语言考试题型及考试重点.doc...
2016年电大 -全国计算机二级c语言考试题型及考试重点 全国计算机二级C语言资格考试 考试方式全国计算机二级C语言.笔试:90分钟,满分100分,其中含公共基础知识部分的30分.???? 2.上机: ...
- c语言未初始化的指针下标访问是0,C语言的二数组的指针访问.doc
C语言的二数组的指针访问 二维数组的指针访问 --王炳华 指向二维数组的指针及用指针访问二维数组,是学习指针的最大难点.如果真正弄懂了这个问题,就可以说你学会了使用指针. 二维数组的指针 指针就是地址 ...
- C语言有四种基本常量,第2章-C语言的基础知识.ppt
第2章-C语言的基础知识.ppt 第二章 编制C程序的基础知识,本章重点内容 2.1 常量与变量 2.2 C语言的基本数据类型 2.3 C语言的常用运算符和表达式,运行程序,第二章 编制C程序的基础知 ...
最新文章
- Arduino IDE增加ATmega32开发选项遇到的问题
- 使用Hibernate在CQRS读取模型中进行快速开发
- web策略类游戏开发(四)一个可以承载万人在线的架构
- 【BZOJ1040】【codevs1423】骑士,第一次的基环外向树DP
- 设计师不用下课了吧?小米突然官宣性价比之王旗舰:升降式摄像头
- [转载] python中随机数生成函数_python中seed随机函数如何生成随机数?
- leetcode/力扣 回溯算法大总结,BAT程序员完整学习手册开放下载!!
- C语言中与字符串有关函数讨论以及安全性能问题
- c语言中函数的知识点总结,c语言函数知识点总结
- 如何编写优秀的单元测试用例
- python判断素数(质数):for-else循环的理解与示例应用
- 职场必备的30套报表模板,满足95%的报表需求,一键套用无需代码
- 苹果怎么在电脑上备份?3种备份方式选择
- 波波腾机器人_加入 Beta 版“机器人bobo” - TestFlight - Apple
- WPF 逻辑树和可视化树
- iOS生成gif图片
- 想搭建一个专属于你的网站吗??新手向超详细攻略
- java.acp是什么,ACP是什么?看这一篇就够啦
- 深度解析Linux通过日志反查入侵
- VSCode快捷键配置复制一行