前言:
如果你正在学习C语言而又不知道从何处开始学,你可以跟着我一起学习C语言,在寒假期间我每天都会发一篇博客,里面有各种C语言的知识点,如果你想学习下去,想进步,就来每天跟着我一起打卡吧,期待我们能一起进步。
C语言运算符
一、算术运算符1.隐式转换2.除法运算中,除数不能为03.取模运算时两边的操作数都应是整型二、关系运算符三、逻辑运算符1.短路效果四、位运算符五、复合赋值运算符六、带副作用的运算符七、自增、自减运算符八、其它运算符1.类型转换运算符()2.逗号运算符3.条件运算符4.sizeof运算符C语言运算符从逻辑数个数上看,可分为一目、二目、三目运算符。
一、算术运算符
这五个算术运算符都是二目运算符,算术运算符的作用是为了求值。
乘法、除法、取模运算符的优先级要比加法、减法的优先级高。
1.隐式转换
在进行算术运算时,在左右两个操作数中,将以最大的那个数据类型为标准进行运算,也就是会先把较小的那个数据类型转换成较大的数据类型,然后再进行运算。把小类型自动转化为大类型的过程,我们把它称为“隐式类型转换”。
下面简单列举一些常用的:
char < int < float < double
7 / 4 = 1
7.0 / 4 = 1.75
7 / 4.0 = 1.75
2.除法运算中,除数不能为0
如果除数为0,就会得到错误的结果。
3.取模运算时两边的操作数都应是整型
并且只有左边操作数才会影响到结果的正负关系,即左操作数若为正,则取模结果也为正值。反之,若左操作数为负值取模结果也为负值。
7 % -4 = 3
-7 % 4 = -3
二、关系运算符
上面的关系运算符都是二目运算符,为了比较左右两个操作数的大小关系。
C语言用1来表示真,用0来表示假。但能表示真的值不仅仅只是1,而是任何的非零值。只不过通常都用1来表示真。
三、逻辑运算符
1.短路效果
当使用逻辑与运算符时,若左操作数的结果为假,则直接返回结果为假,而不是去检查右操作数。
使用逻辑或运算符时,若左操作数的结果为真,则直接返回结果为真,也不会再去检查右操作数。
四、位运算符
逻辑运算符都是对操作数进行运算的,而位运算符是对操作数的二进制位进行运算的。
下面对整数23,其8位二进制码为0001 0111
23<<1
得0010 1110
23>>1
得0000 1011
~23
得1110 1000
23&50
得0001 0010
23|50
得0011 0111
23^50
得0010 0101
(异或:两位不同时,一位为1,一位为0,结果为1)
五、复合赋值运算符
这些运算符只能对可修改的变量使用,不可用于常量。
六、带副作用的运算符
赋值运算符、复合赋值运算符、自增、自减运算符。
我们通常把这些能够改变操作数的行为称为“副作用”,把拥有这类行为的运算符称为“带副作用的运算符”。
七、自增、自减运算符
是一目运算符,也是带副作用的运算符。
a的初值为1
如果我们只是单纯地希望操作数加1,而不会去使用这个新值,则不管使用前缀的或者后缀的自增运算符都可以;反之如果需要使用这个新值,则前缀的与后缀的就有区别了。
八、其它运算符
1.类型转换运算符()
自动将小类型转换为大类型的行为就属于隐式类型转换。
现在讲的这个显示类型转换,它不但可以像隐式类型转换一样将一个小类型转换为大类型,而且也可以将一个大类型转换为一个小类型,这是隐式类型转换做不了的。
(数据类型) 操作数
小括号内的数据类型表示要转换的目的数据类型。
2.逗号运算符
int a;
a =(3,4,5);
结果为5
int a;
a = 3,4,5;
结果为3
3.条件运算符
是一个三目运算符
操作数1 ? 操作数2 : 操作数3
如果操作数1为真,则返回操作数2,反之返回操作数3。
4.sizeof运算符
sizeof (操作数);
这个操作数可以是一种数据类型,也可以是某种数据类型的常量或变量。
若操作数是一种数据类型,那么必须使用小括号,如果操作数并非是数据类型的话,就可以省略小括号。
sizeof运算符就可以返回它的大小,以字节为单位。通过sizeof运算符就可以很方便地获知某种数据类型在内存中所占用的空间大小。
【算术 关系 逻辑 位 复合赋值 带副作用的 自增 自减 其它】运算符(学习笔记4--C语言运算符)