三目运算符_C语言知识点:运算符的优先级和结合性

35844b1a1c7ca391222380feec09fcd5.png

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

C语言内置了丰富的运算符,大体可分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。

根据运算符可操作的操作数的个数,可把运算符分为一元运算符、二元运算符和多元运算符(一般三元)。

1、算数运算符

用于数值计算,包括:加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(--)。

2、关系运算符

用于比较运算,包括:大于(>)、小于(=)、小于等于(<=)、不等于(!=)。

3、逻辑运算符

用于逻辑运算,包括:与(&&)、或(||)、非(!)。

4、位操作运算符

按二进制位进行运算,包括:位与(&)、位或(|)、位非(~)、 位异或(^)、左移(<>)。

5、赋值运算符

用于赋值运算,包括:简单赋值(=)、复合算术赋值(+=、-=、*= 、/=、%=)以及复合位运算赋值(&=、|=、^=、>>=、<<=)等。

6、条件运算符

用于条件求值,三目运算符:(x > y) ? x : y。C语言中有且只有这一个三目运算符。

7、逗号运算符

用于把若干表达式组合成一个表达式:表达式1 , 表达式2。

8、指针运算符

用于取内容(*)和取地址(&)两种运算。

9、求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

10、特殊运算符

包括括号()、数组下标[]、成员(-> 和 .)等。

f96974e1a5cda958573cf4fbfaefd9c1.png

比如式子“x = 1 + 2 * 3 / 4”,需要先计算乘再计算除,然后是加,最后是赋值。这里介绍下关于运算符在参与运算过程中的两个概念:

  • 优先级:当不同运算符优先级不同时,先计算谁后计算谁
  • 结合性:当不同运算符优先级相同时,先计算谁后计算谁

运算符的优先级和结合性

c85add23af37a242a85295c82d1f07ff.png

作为初学者,当一个表达式中有多个运算符时,如果不知道哪个优先级高哪个优先级低就可以查一下优先级表,等用的时间长了自然而然就记住了。而且,事实上在编程的时候也不需要考虑优先级的问题。因为如果不知道优先级高低的话,加一个括号就可以了,因为括号( )的优先级是最高的。

另外,大多数运算符的结合性都是从左往右。从右向左的一个是单目运算符,另一个是三目运算符,还有一个就是双目运算符中的赋值运算符=。运算符的“结合性”也不用死记,在不断使用中就记住了。

扩展阅读:

C语言:一种高效、易学的编程语言

C语言的内存分配方式:堆和栈

C程序中常见的与内存相关的错误

GCC编译C语言程序的全过程

C语言中静态库和动态库简介

f9c9dc978e02f81001ef641b9d49880e.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可以直接进行运算么_WORD办公技巧:如何直接在WORD中进行加法、乘法运算?

排版目标下图文档中有一张2020年&#xff11;&#xff0d;&#xff13;月口罩购买情况统计表&#xff0c;数据量并不大&#xff0c;我们想不动用excel表格进行统计&#xff0c;直接利用WORD自带的函数公式计算出表格内空白单元格的数值。其中&#xff0c;金额&#xff1d;单价&…

对dladdr未定义的引用

参考链接 c - 为什么我得到“对dladdr的未定义引用”&#xff0c;即使是这个简单程序的-ldl&#xff1f; | 码农俱乐部 - Golang中国 - Go语言中文社区 注意事项 dladdr需要与-ldl链接&#xff0c;且-ldl放置在链接的最后 CMakeLists.txt 模板 cmake_minimum_required(VERSI…

如何优雅互换Map键与值

一般方法 //map must be a bijection in order for this to work properly public static <K,V> HashMap<V,K> reverse(Map<K,V> map) {HashMap<V,K> rev new HashMap<V, K>();for(Map.Entry<K,V> entry : map.entrySet())rev.put(entry…

python程序设计题怎么写_《Python语言程序设计基础》第1章程序练习题

本文为中国大学MOOC《Python语言程序设计》课程学习笔记&#xff0c;课程主讲&#xff1a;嵩天老师&#xff0c;练习平台&#xff1a;Python123&#xff0c;参考教材&#xff1a;《Python语言程序设计基础》1.1 字符串拼接Str1 input("请输入一个人的名字&#xff1a;&qu…

《剑指Offer》36:二叉搜索树与双向链表

题目 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点&#xff0c;只能调整树中节点指针的指向。比如&#xff0c;输入下图中的二叉搜索树&#xff0c;输出转换之后的排序双向链表。 二叉树节点的定义如下&#xff1a; pub…

窗口位置按钮取消_VBA002:“宏”的保存位置有哪几种方式?

商务合作请加微信 | Allen_Lyq文章投稿 | jiangjunpeng1996126.com微信公众号 | Word和Excel达人先生头条号 | 跟小小筱学办公技能通过上一篇文章的学习&#xff0c;我们已经知道宏的基本用法&#xff0c;在录制宏的过程中&#xff0c;还有几个点需要我们注意下&#xff1a;宏命…

《剑指Offer》60:n个骰子的点数

题目 把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为S。输入n&#xff0c;打印出S的所有可能的值出现的概率。 分析 直接法 假设骰子有face面&#xff0c;有n个骰子&#xff0c;那么总排列数就有faceⁿ个。&#xff08;例如&#xff0c;有3个6面骰子&#xff…

fastjson解析多层数据_怎么解析三层List json数据

注意这个json格式不对前后的 [ ] 应该要去掉。 (我不是说你缺少的结束符)FastJSON 随意解决的事情。0, compile com.alibaba:fastjson:1.2.71&#xff0c;去这个网站 http://www.jsonschema2pojo.org/粘贴你的json字符串1.1 Source type:JSON1.2 Annotation style:NONE1.3 所有…

《剑指Offer》37:序列化二叉树

题目 请实现两个函数&#xff0c;分别用来序列化和反序列化二叉树。 分析 我们清楚可以通过前序遍历序列和中序遍历序列创造出一棵二叉树。因此&#xff0c;我们可以先把一棵二叉树序列化成一个前序遍历序列和一个中序遍历序列&#xff0c;然后在反序列化时通过这两种序列还…

c linux 判断ip合法_shell 检测ip的合法性与检测网络掩码的合法性

有时我们需要检测IP输入的正确性与网络掩码的正确性&#xff0c;用shell脚本写的&#xff1a;#验证ip地址的正确性check_ip_format(){echo $1 | grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/nullif [ $? 1 ]; thenreturn 1elseaec…

《剑指Offer》38:字符串的排列

题目 输入一个字符串&#xff0c;打印该字符中字符的所有排列。 例如&#xff0c;输入字符串abc&#xff0c;则打印出由字符a、b、c所能排列出来的所有字符串有abc、acb、bac、bca、cab、cba 分析 把一个字符串看成由两部分组成&#xff1a;第一部分是它的第一个字符&#…

含有js的英文单词_JavaScript 常用单词整理

JS单词push :添加一个数组元素document &#xff1a;文档pop &#xff1a;删除最后一个数组元素console &#xff1a;控制台shift &#xff1a;删除第一个数组元素string &#xff1a;字符串Concat 组合数组undefined &#xff1a;未定义typeof &#xff1a;关键字join&#xf…

《剑指Offer》23:链表中环的入口节点

题目 若一个链表中包含环&#xff0c;如何找出的入口结点&#xff1f;如下图链表中&#xff0c;环的入口节点的节点3。 分析 一快&#xff08;移两节点&#xff09;一慢&#xff08;移一节点&#xff09;两指针判断链表是否存在环。算出环有几个节点&#xff08;上一步的两指…

mysql数据库上机题_MYSQL数据库练习题操作(select)大全

1、 查询Student表中的所有记录的Sname、Ssex和Class列。select sname,ssex,class fromstudent;2、查询教师所有的单位即不重复的Depart列。select distinct depart fromteacher;3、 查询Student表的所有记录。select * fromstudent;4、 查询Score表中成绩在60到80之间的所有记…

Java中<? super T>和List<? extends T>的区别

Java中<? super T>和List<? extends T>的区别 <? extends T> 下面通配符声明List<? extends Number> foo3的赋值式是合法的&#xff1a; List<? extends Number> foo3 new ArrayList<Number>(); // Number "extends" …

mysql书写规则_每天10分钟带你学会MySQL(二)SQL语句的基本书写规则

SQL语句时必须要遵守一些规则。这些规则都非常简单&#xff0c;接下来就让我们逐一认识一下吧。1&#xff0c;SQL语句以分号(;)结尾。■SQL语句要以分号(;)结 尾一条SQL语句可以描述一个数据库操作。在RDBMS当中&#xff0c;SQL语句也是逐条执行的。众所周知&#xff0c;我们在…

《剑指Offer》52:两个链表的第一个公共节点

题目 输入两个链表&#xff0c;找出它们的第一个公共节点。 public static class ListNode{public int val;public ListNode next;public ListNode(int val) {this.val val;} }分析 首先遍历两链表的长度。在第二次遍历的时候&#xff0c;在较长的链表上先走若干步&#xf…

mysql win 64_win10下装mysql-5.7.18-winx64

步骤1官网下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/选择手动安装版&#xff1a;解压到D盘mysql文件夹下&#xff1a;比以往的版本里缺少了两个.ini文件&#xff0c;直接copy过来&#xff0c;进行修改,my.ini&#xff1a;[client]port3306default-character-…

《剑指Offer》62:圆圈中最后剩下的数字(约瑟夫环)

题目 0,1,2…,n-1这n个数字排成一个圆圈&#xff0c;从数字0开始&#xff0c;每次从这圆圈你删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如&#xff0c;0、1、2、3、4这5个数字组成一个圆圈&#xff0c;从数字0开始每次删除第3个数字&#xff0c;则删除的前4个数字…

mysql数据库老是被锁怎么解决_Mysql数据库全局锁是如何引起的,如何解决?

2019-01-08 回答乐观锁与悲观锁不同的是&#xff0c;它是一种逻辑上的锁&#xff0c;而不需要数据库提供锁机制来支持当数据很重要&#xff0c;回滚或重试一次需要很大的开销时&#xff0c;需要保证操作的acid性质&#xff0c;此时应该采用悲观锁而当数据对即时的一致性要求不高…