1、运算符:

连接两个操作数(常量、变量)的符号

用运算符依照一定的规则连接的式子称为表达式

运算符的分类:

1)操作数的个数:

单目运算(++     sizeof    !)

双目运算符:。。。

。

三目运算符: 
?:

2) 功能:

算术运算符、关系和逻辑运算、位运算

2、算术运算符

1)什么东西?

进行算术的运算,总计5个

+  -  *  /  %

双目运算符

a+b   a*3   b/5    10%3

2)优先级

* /   3

+ -   4

乘除的优先级要高于加减的

3)结合性

前提:优先级同样

左结合:从左到右结合计算

int a=3,b=2;

a+b*3/1-5

--> a+6-5

--> 4

4)注意事项

% 求余数

m%n求余数

m = 0   结果是 0

n = 0   结果无意义,n不能为0

m > n   结果正常取余数

m < n   结果是 m

3、赋值运算符

1)什么东西?

=   作用:把等号的右側的值(常量、表达式)赋值给等号左边的变量

注意:等号的左边一定要是变量

a+2 = b+2 (错误的)  10=a(错误的)

a = 2;  b=a+3;

2)优先级

14

3)结合性

右结合:从右至左

int a,b,c,d;

a = b = c = d = 0;

int a=b=c=d=0;(错误的)

4)注意事项

复合赋值运算符:总共同拥有5个

+=    a+=2;--> a = a+2;

-=    a-=2;--> a = a-2;

*=    。。

。。

/=

%=

4、自增、自减运算符

1)什么东西?

++ --  相当于让运算符连接的操作数自身的值+1或者-1

格式:
变量名++      ++ 变量名

变量名--      --
变量名

让变量的值自己主动的+1或者-1

2)优先级

2

3)结合性

右结合

(a++)+(++b)

-a++  -->  -(a++)

4)注意事项

技巧:

int a=3;         a++        ++a

表达式的值          3          4

a变量的值           4          4

假设a在++符号的前面。先取出a的值作为表达式的值,然后a自身值+1

口诀:先用后变

假设a在++符号的后面,先让a自身值+1,然后取出a的值作为表达式的值

口诀:先变后用

5、sizeof运算符

1)什么东西?

计算常量、变量、数据类型在我们内存中占用的字节数

2)使用方法

常量上
:  sizeof(10)  sizeof(2.3)  sizeof('a')

---> sizeof 10   sizeof 2.3

sizeof("a")  //2

'

变量上:int a;  sizeof(a);

数据类型上:sizeof(int)   sizeof(float)  sizeof(char)

3)结合性

4)注意事项

sizeof不是第一个函数,是一个运算符

sizeof('a') 4个字节。字符型的常量在C标准的编译中用int型存储的

6、关系运算符

真假性问题:

全部的数值都有真假性

非0
就真(1)      0就是假(0)

1)什么东西?

推断操作数之间的关系,总计有6个

>    大于

<    小于

>=   大于等于

<=   小于等于

==   等于

!=   不等于

双目运算符

a>3   b>a+2;   1>2

2)优先级

6

3)结合性

左结合

a = 1>2<3>0;

((1>2)<3)>0

1>0

4)注意事项

7、逻辑运算符

1)什么东西?

很多其它的时候是推断多个条件是否同一时候成立(同一时候为1)

双目运算符

&&   逻辑与&&符号两边的表达式都必须为真

口诀:同真为真  
一假则假

||   逻辑或 ||符号两边的表达式有一个为真。结果就为真

口诀:同假为假 
一真则真

!    逻辑取反
(单目运算。右结合)

口诀:真变假    
假变真

2)优先级

!             2

&&             11

||             12

3)结合性

左结合

4)注意事项

短路的问题:

掌握口诀即可

a && b+2 || b-5

8、条件运算符

1)什么东西?

?

:

进行了一个简单的推断

a>b?a:b  -->取出a、b中的最大值

先推断a>b是否为真:

假设为真:a的值作为条件表达式的值返回

假设为假:b的值作为条件表达式的值返回

2)优先级

13

3)结合性

左结合

(num1>num2?num1:num2)>num3 ?

num1>num2?num1:num2 :num3

4)注意事项

【C语言疯狂讲义】(三)C语言运算符的更多相关文章

  1. 【C语言疯狂讲义】(七)C语言进制转换

    1.计算机中的进制 2进制:逢二进1      0  1 8进制:逢八进1      0  1   2  3  4  5  6  7 10进制:逢十进1  默认的进制  0 - 9 16进制:逢十六进 ...

  2. [Java入门笔记] Java语言基础(三):运算符

    简介 运算符是一种特殊的符号,运算符是通过一定的运算规则操作一个或多个操作数,并生成结果的特定符号,运算符和操作数的有效组合称为表达式. Java中运算符主要分为以下几类: 赋值运算符 算术运算符 关 ...

  3. 【C语言疯狂讲义】(八)C语言一维数组

    1.数组的基本概念: 同样类型    若干个     有序 由若干个同样类型的数据组成的有序的集合 有序:存储地址连续 下标连续 数组名:用来存放数组首地址的变量 数组元素:构成数组的每个数据 数组的 ...

  4. 《Java疯狂讲义》(第3版)学习笔记 2 - Java语言的运行机制

    内容 1.高级语言的运行机制 2.Java 语言的运行机制 1.高级语言的运行机制 高级语言主要分为编译型语言和解释型语言两类. 编译型语言是指使用专门的编译器.针对特定平台(操作系统)将高级语言源代 ...

  5. 《玩转D语言系列》三、轻松大跃进,把它当C语言先用起来

    前面说过,本系列文章的前提是您懂C语言,懂面向对象中的一些概念,如果没有任何变成基础,从零开始学习D语言将是一个漫长的过程,因为很多概念都要重新诠释,让一个没有基础的人经过漫长的学习过程,然后还找不到 ...

  6. Swift语言学习(三)基础操作符

    操作符是用于检测.更改或者组合值的特殊符号或短语.例如,加法操作符 (+) 将两个数字加到一起 (如 let i = 1 + 2).更复杂的例子包括逻辑与操作符 && (如 if en ...

  7. 你想了解的《javaScript语言精粹》(三)

    # javaScript语言精粹  # 第三章 对象 - javaScript 数据类型     1. 基础数据类型         Number String Boolean Undefined N ...

  8. 数据结构与算法分析——C语言描述 第三章的单链表

    数据结构与算法分析--C语言描述 第三章的单链表 很基础的东西.走一遍流程.有人说学编程最简单最笨的方法就是把书上的代码敲一遍.这个我是头文件是照抄的..c源文件自己实现. list.h typede ...

  9. 三种语言(c++、as、lua)中函数的差异性

    对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...

随机推荐

  1. VBA 学习

    Sub abc() Dim i Dim coloumn coloumn = For i = To Dim currentValue currentValue = Val(ReplaceChar(She ...

  2. ()C# DataRow

    判断某列是否存在,返回bool dr.Table.Columns.Contains("水分含量")

  3. Gmail进程信息转储分析工具pdgmail

    Gmail进程信息转储分析工具pdgmail   进程信息转储(Process Memory Dump)是数字取证的重要方式.通过分析对应进程的信息转储,可以获取大量的信息.Kali Linux提供一 ...

  4. Xamarin XAML语言教程Xamarin.Forms中构建进度条

    Xamarin XAML语言教程Xamarin.Forms中构建进度条 ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度条总是水平放置的.本节将讲解如何使用进度条. 注意:进度条在 ...

  5. JSP的内置对象(上)

    1.JSP内置对象的概念:JSP的内置对象时Web容器所创建的一组对象,不使用new关键字就可以使用的内置对象 2.JSP九大内置对象内置对象:out ,request ,response ,sess ...

  6. UIPanGestureRecognizer判断滑动的方向

    .h文件 CGFloat const gestureMinimumTranslation = 20.0 ; typedef enum : NSInteger { kCameraMoveDirectio ...

  7. 在Spring MVC Controller中注入HttpServletRequest对象会不会造成线程安全的问题

    做法: 1.比如我们在Controller的方法中,通常是直接将HttpServletRequest做为参数,而为了方便节省代码,通常会定义为全局变量,然后使用@Autowire注入. 说明: 1.观 ...

  8. IOS调用WCF提供的服务方法,但是方法的参数是WCF那边自定义的对象,这样有办法调用么,如果可以IOS应该怎么传参呢?请问有了解的么,

    最近做一个项目后端使用WCF接收Android手机拍照并带其它参数保存到服务器里:刚好把最近学习的WCF利用上,本以为是个比较简单的功能应该很好实现,没想到其中碰到不少问题,在网上搜索很久一直没有想到 ...

  9. 纯CSS实现网站常用的五角星评分和分数展示交互效果

    最近做的一个项目涉及到评分和展示分数的模块,UI设计师也给了几个切好的图片,实现五角星评分方式很多,本质爱折腾的精神和对性能追求以及便于维护的考虑,搜集和尝试了很多方式,最终采用了纯css驱动的实现方 ...

  10. Android如何缓存你的BITMAP对象

    在app中通常最占内存.占流量的元素就是图片了,图片往往又无处不在,特别是伴随着list,GridView或者ViewPager出现,这些图片随着你的滑动操作,时而出现在你的屏幕中,时而消失在屏幕之外 ...