一、算数运算符 +加 -减 *乘 /除 %取模
1.除法运算:若两个操作数都为整数则进行整数除法,若两个操作数有一个为浮点数则进行浮点数除法。
2.取模操作符的两个操作数都必须为整数。
二、移位操作符
<<左移 >>右移
1.<<左移:移动二进制序列,向左移动,左边遗弃,右边补0
2.>>右移:①算数右移:移动二进制序列,向右移动,右边遗弃,左边用原该值的符号位补充
②逻辑右移:移动二进制序列,向右移动,右边遗弃,左边补0
注:①计算机里存放的是数字的补码
正数的原码,反码,补码都一样。 00000000000000000000000000000001–数字1
负数则不同:例如-1 10000000000000000000000000000001–原码 11111111111111111111111111111110–反码(原码按位取反就是反码) 11111111111111111111111111111111–补码(反码加1就是补码)
②对于移位操作符,不要移动负数位
三、位操作符
&按位与
| 按位或
^按位异或
1.&按位与:
按二进制位与,对应的二进制位有一个为0就是0
2.| 按位或:按二进制位或,对应的二进制位有一个为1就是1
3.^按位异或:按二进制位异或,对应的二进制位相同为0,相异为1
四、赋值操作符 =等于:可连续使用
五、符合赋值符 += -= *= /= <<= >>= %= &= |= ^= a=a+3 ==> a+=3(这样写更加便捷)
六、单目运算符 !逻辑反操作 -负值 +正值 &取地址 sizeof操作数的类型长度 ~按位取反 --自减 ++自加 *解引用操作符 (类型)强制类型转换
1.sizeof①表达式里面的表达式不进行计算 ②int arr[10]—>sizeof(arr)=sizeof(int [10])=10(数组也有类型)
2.++a:先增加,再运算 a++:先运算,再增加(–相同)
3.强制类型转换:int a=(int)3.14;
七、关系运算符 >大于 <小于 >=大于等于 <=小于等于 !=判断不等于 ==判断等于 //需要注意在判断等于时是两个等号。
八、逻辑操作符
1.&&逻辑与 有一个为假,结果为假(如:1&&2–>1 0&&2–>0)
2.|| 逻辑或 有一个为真,结果为真(如:1||2–>1 0||2–>1)
九、条件操作符
exp1 ? exp2 : exp3当exp1为真,结果为exp2;当exp1为假,结果为exp3
十、逗号表达式
exp1,exp2,exp3,…,expN逗号表达式就是用逗号隔开多个表达式,从左向右依次执行,但整个表达式的结果是最后一个表达式的结果。
十一、下标引用、函数调用和结构成员
1.下标引用 []
操作数:一个数组名+一个索引值(如:int arr[10])
2.函数调用操作符()
括号()里的操作数为传递给函数的参数
3.结构成员—> . 结构体 ->结构体指针( (*p).name 相当于 p->name )定义一个学生类型struct Stu(没有占据内存空间)。Stu为结构体标签。struct Stu s(这里的s为结构体变量)。通过struct Stu这个类型创建s变量的这个过程叫做实例化。若想要给结构体里的成员赋值我们可以采用以下方法: strcpy(s.name,“李四”);strcpy(s.sex,“男”); s.age=20;(整型变量可以直接放进去)结构体成员的访问–>s.name s.age s.sex
总结C语言操作符
最新推荐文章于 2025-07-23 10:08:51 发布
1719

被折叠的 条评论
为什么被折叠?



