OC学习笔记之C中的运算符

来源:互联网 发布:陕西大数据集团前景 编辑:程序博客网 时间:2024/06/13 05:21

C运算符简表


C语言运算符简表

运算符的基本使用

分类:
按照功能划分:算术运算符,关系运算符,逻辑运算符,按位运算符
按照参与运算的操作数个数:单目运算,双目运算,三目运算
运算符的优先级:
15级,1级最高,15级最低
运算符的结合性
优先级必须相同,左结合右结合
算术运算符
左结合
* / %第三级
+ —第四级
例子:int a = 10;int b = 10;
a*b/3-5*6+10————->(等级不同)按等级划括号(a*b/3)-(5*6)+10————>(第三等级)等级相同从左向右((a*b/3)
从左向右运算的结果为33,5*6的结果为30)———->(第四等级,从左向右)33-30+10=13
%的使用注意事项:
1)m和n都不能为小数
2)m<0时,结果为负数
3)n<0时,对结果无影响,结果的正负性取决于m,而不是n
算术运算符的类型转换类型
分为隐式类型转换(自动转换)和显示类型转换(强制转换)
隐式类型转换:
int a = 10;
float b = 10.01;
当执行a+b的操作时,a会自动转换为float类型进行运算
显示类型转换
(要转换的类型)要转换的变量或者表达式。
(int)(a+b);
转换的规则:(char|short)—–>int——->float———>unsigned———>long———->double
注意事项:
1)用一个大数+一个特别小的数,如果使用float会有问题,因为float的有效数位只有7位
int num = 1000;
float f3 = 0.00006
2)强制类型转换时临时转换
(int)f;这里的f只是临时转换,并没有真正转换他的值
表达式:用运算符按照一定的规则,连接起来的式子
分为算术表达式,关系表达式,逻辑表达式。表达式一定有返回值,表达式后面加上分号,表示一个表达式语句;
赋值运算符:
就一个”=”号。14级,把等号右边的值给等号左侧的变量,等号左侧必须是一个变量
a+b=5;//这种写法是错误的
赋值运算符的结合性:右结合
int a,b,c;
a = b = c = 10;————–>a = (b = (c = 10));
复合赋值运算符:
14级
+=,-=,*=,/=,%=
a+=3;——–>a = a+3;
自增自减运算符:
2级
右结合,单目
1)前缀表达式
++x,–x:先完成变量的自增自减操作,再用X的值作为表达式的值,即先变后用
int a = 3,b = 0;
b = a++;
printf(“%d,%d”,a,b);结果是4,4;
2)后缀表达式
x++,x–:先用后变
int a = 3,b = 0;
b = a++;
printf(“%d,%d”,a,b);结果是4,3;
注意事项
++5;//错误的写法,不能是常量
++(a+3);//错误的写法
result = a+++b++;
sizeof运算符
单目,作用:以字节的形式给出了其操作数占用的存储的大小
用法:sizeof(常量/变量/结构体名称);
1)计算常量在内存中占用的字节数
sizeof(1);//4字节,默认int类型
sizeof(2.3f);//4字节
sizeof(2.3);//8字节,默认double类型
sizeof(‘a’);//4个字节,char类型的常量占4个字节,存储的时候会转换为ascii码存储
2)sizeof运算符计算变量在内存中占用的字节数
int a = 10;
float f1 = 2.3f;
double d1 = 2.4;
char ch = ‘a’;
sizeof(a);//4
sizeof(f1);//4
sizeof(d1);//8
sizeof(ch);//1
3)sizeif用于计算一种数据类型在内存中占用的字节数
sizeof(int);//4
sizeof(float);//4
sizeof(double);//8
sizeof(char);//1
逗号运算符
//用于计算
result = (a+b,a-b,a*b);
result = ((a+b,a-b,a*b),a++,a–);
//简化代码
a++,b–;
//定义变量的时候,就不是使用的逗号表达式
int a = 10,b = 11,c = 11;
关系运算符
0为假,非零即真,左结合

,<,>=,<=这四个是六级
==,!=是七级
逻辑运算符
&&,||,!
!在2级
&&在11级
||在12级
左结合
逻辑运算的短路问题,逻辑或短路,逻辑与短路
三目运算符(条件运算符)
表达式1?表达式2:表达式3————–>如果表达式的值为真,那么真个表达式的值就是表达式2的值,如果为假,
就是表达式3的值
例子:result = b>a?10:100;
注意:?和:必须同时出现,结合性为自右向左

0 0