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

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

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

1、算数运算符

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

2、关系运算符

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

3、逻辑运算符

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

4、位操作运算符

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

5、赋值运算符

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

6、条件运算符

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

7、逗号运算符

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

8、指针运算符

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

9、求字节数运算符

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

10、特殊运算符

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

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

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

运算符的优先级和结合性

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

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

扩展阅读:

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

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

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

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

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

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

  1. C语言的运算符的优先级与结合性+ASCII表

    [0]README 0.1) 内容来源于 C程序设计语言, 旨在整理出C语言的运算符的优先级与结合性, 如下图所示(哥子 记了大半年都没有记住,也是醉了,每次都要去翻): 0.2) 再补充下 Java ...

  2. [c语言]运算符的优先级与结合性

    c语言中运算符的优先级和结合性常常被人混淆一谈,本文目的在于简单谈谈两者的区别.本文举几个简单的例子说明,这些运算符也特别常用. 首先要明白的是:优先级决定表达式中各种不同的运算符起作用的优先次序:而 ...

  3. c语言左值中有运算符,C语言左值,运算符的优先级以及结合性探讨

    刚刚开始看一本书.<C陷阱与缺陷>,相信学习C语言的大家都对这本书有耳闻.今天看到了里面的贪心法则.也即在读到一个字符后,尽可能多的读入更多的字符,直到读入的字符组成的字符串已经不可能再组 ...

  4. c语言 异或_C语言知识点:运算符的优先级和结合性

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号. C语言内置了丰富的运算符,大体可分为10类:算术运算符.关系运算符.逻辑运算符.位操作运算符.赋值运算符.条件运算符.逗号运算符.指针运算符.求 ...

  5. 说说C语言运算符的“优先级”与“结合性”

    本文链接:https://blog.csdn.net/steedhorse/article/details/5903974 论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或 ...

  6. c++ 位运算_C语言之运算符

    运算符代表的是各种各样的运算(操作) 已知的运算符:+ - * / =(赋值) 1.运算符的分类 运算符的分类方法很多,通常用功能或者操作数个数进行分类 功能:算数运算符 逻辑运算符 位运算符 地址运 ...

  7. c语言共有几种运算符_C语言的运算符和表达式有哪些

    C语言的运算符和表达式有哪些 C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统 ...

  8. C语言中运算符的优先级问题(如何巧妙记忆运算符的优先级顺序)

    文章目录 C语言中的运算符 C语言中运算符的优先级 帮助记忆优先级的方法 先粗分 再细分 最后吃透 因不明确优先级而造成的常见问题 C语言中的运算符 C语言中的运算符说多也多,说不多也不多,包括以下运 ...

  9. C语言运算符的优先级和结合性

    刚学习C语言的同学看到优先级和结合性往往是一脸懵懂. 其实,所谓优先级,就是表达式中有不同的运算符,我们该就先计算哪一个?例如,a+b*c,先计算乘法,再计算加法. 所谓结合性,就是表达式中的相同类型 ...

最新文章

  1. 在同一台电脑上弄分布(异步)式训练
  2. 还应该如何实现“模板化函数指针”?
  3. Why Java Sucks and C# Rocks(3):Attribute与Annotation
  4. 第二十二章:动画(十五)
  5. 机器学习:结点的实现,决策树代码实现(二)
  6. hadoop常用命令总结
  7. 好久不更新这个博客了。
  8. 以前看过一个压缩过的.exe,运行会播放长达半小时的动画,却只有60KB,个人认为其中的原理...
  9. PC顶级后次世代和主流次世代图像引擎技术规格表
  10. 12种JavaScript MVC框架之比较
  11. 网页制作,改变你的思维方式
  12. Atitit 企业战略目标的艺术 目录 1. 企业战略目标 1 2.  特点 ▪ 宏观性 ▪ 长期性 ▪ 全面性 稳定性 1 3. 内容 2 3.1. 彼得·德鲁克在《管理实践》一书中提出了八个
  13. hadoop运维笔记
  14. Qt 之 模仿 QQ登陆界面——样式篇
  15. 如何复位———异步复位,同步释放的方式,而且复位信号低电平有效(转)
  16. [IOI2019] 景点划分
  17. python常用单词读法-Python常用单词
  18. 【网络安全】Centos7安装杀毒软件----ClamAV
  19. 分布式 | 拜占庭将军问题
  20. javascript 中的纯函数

热门文章

  1. 自己动手写TCC7901的GPIO驱动
  2. catia linux下载64位,CATIA V5 CATSysDemon.exe缓冲区溢出漏洞
  3. python 读取outlook_如何用 Python 读取 Outlook 中的电子邮件
  4. 鸿蒙os开源邀请全球开发者,全场景无缝连接 鸿蒙OS开源邀请全球开发者共助生态发展...
  5. Sharepoin学习笔记—架构系列--03 Sharepoint的处理(Process)与执行模型(Trust Model) 2
  6. [转载]使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案
  7. Java中泛型Class《T》、T与Class《?》
  8. sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库
  9. c++ vs release没有exe_未来安全 | 第一次Geant4培训总结 | 有没有你关注的问题呢?...
  10. 【HDU - 6186】CS Course(按位与,按位或,按位异或的区间统计,二进制拆位)