【C语言疯狂讲义】(三)C语言运算符

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)注意事项

时间: 2024-10-10 04:19:49

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

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

1.计算机中的进制 2进制:逢二进1      0  1 8进制:逢八进1      0  1   2  3  4  5  6  7 10进制:逢十进1  默认的进制  0 - 9 16进制:逢十六进1   0 - 9  A B C D E F      (内存的地址格式) 2.进制的转换问题 三个要素: 数位(0-7). 基数(每一位能取值的个数). 位权(数码*基数^数位).    101 = 1*2^0+0*2^1+1*2^2 数码(每一位设置) 转换:有得时候转换为人能识别的数制,要操作

【C语言疯狂讲义】(十六)C语言文件操作

1.文件的基本概念 存储外部介质上得数据集,数据集有一个名称就是文件名 文件的分类: 1)用户角度:普通文件和设备文件 2)存储的内容: ascii文件(文本文件): 存储的流程:根据文本找到其对应的ascii码值---->转为二进制--> 写到文件中 读取流程: 二进制-->10进制-->找对应的字符-->显示出来 二进制文件: 二进制数据的存取 文件的操作流程: 1)导入头文件  stdio.h 2) 定义文件指针 3)打开文件 4)操作文件 5)关闭文件 文件操作原理

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

1.数组的基本概念: 相同类型    若干个     有序 由若干个相同类型的数据组成的有序的集合 有序:存储地址连续 下标连续 数组名:用来存放数组首地址的变量 数组元素:构成数组的每一个数据 数组的下标:给数组的每一个元素做一个编号 数组的长度:构成数组的数据的个数 2.一维数组的定义 数组的使用的流程:先定义   ---> 初始化   --->使用 数组定义完成后,如果不初始化里面存放的时垃圾值 格式:int arr[10]; 定义长度为10的整型数组,每个都是Int型的,数组的名称 a

李刚OC语言疯狂讲义笔记

设计一个”学生“类1> 属性* 姓名* 生日用结构体作为类的实例变量(生日) #import <Foundation/Foundation.h> //定义生日的结构体 typedef struct{ int year; int month; int day; }MyDate; @interface Person : NSObject { @public NSString *_name;//定义姓名 MyDate _birthday;//定义生日 } @end @implementatio

【C语言疯狂讲义】(十六)C语言简易通讯录(未优化版)

<通讯录>开发用到得知识点 常量.变量的使用 全局变量 分支语句 函数 宏 循环语句 scanf和printf 数据 结构体 文件 指针* <通讯录>中解决的经典问题 数组元素如何删除(不使用链表) 开发调试环境:Mac os x10.10 + xcode6.1 通讯录主界面: 添加联系人界面 删除联系人界面 修改联系人界面 搜索联系人 #include <stdio.h> #include <string.h> /****** 宏定义 *******/ #

【C语言疯狂讲义】(九)C语言指针(一)

1.什么是地址? 内存是由若干个1个字节的内存单元组成的存储器 计算机为了管理内存单元,给每个字节都进行编号 编号的就是地址 2.什么是指针? 地址就是指针 地址: 地址指向的内存单元值:编号对应的存储内容 变量访问的方法:直接访问    间接访问 1)直接访问:用变量名访问其代表的存储空间 2)间接访问:通过内存地址访问地址所对应的存储单元的内容 3.指针和变量之间的关系 指针可以间接的访问变量的值 1)指针变量:就是用来存放地址的变量 指针变量也遵守变量使用的规则 :先定义  --->初始化

【C语言疯狂讲义】(四)C语言分支语句

1.程序的结构 程序默认从上到下顺序执行(顺序结构) 程序的结构:顺序结构.分支结构.循环结构 2.if分支语句 程序执行的过程中可以有多个选择 格式: if(表达式){ 语句块; } ...... 进行表达式的求值:如果表达式的值为非0(真) 会执行语句块 0 (假) 不会执行语句块, 3.if分支语句的几种形式 1)最简单的,要不执行,要不是不执行 if(表达式){ 语句块; } 2)if.....else...... if(表达式){ 语句块1: }else{ 语句块2: } 进行表达式的

OC语言疯狂讲义学习笔记

1.关于nil和Nil及NULL的区别: nil: A null pointer to an Objective-C object. ( #define nil ((id)0) ) nil 是一个对象值. Nil: A null pointer to an Objective-C class. NULL: A null pointer to anything else. ( #define NULL ((void *)0) ) NULL是一个通用指针(泛型指针). NSNull: A class

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

内容 1.高级语言的运行机制 2.Java 语言的运行机制 1.高级语言的运行机制 高级语言主要分为编译型语言和解释型语言两类. 编译型语言是指使用专门的编译器.针对特定平台(操作系统)将高级语言源代码一次性“翻译”成该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行文件格式,这个转换过程称为编译(Compile).编译生成的可执行程序可以脱离开发环境,在特定的平台下独立运行.有些还需要链接其他编译好的目标代码 编译型语言是程序在执行之前需要一个专门的编译过程,把程序