经过一天的学习,最后决定将操作符来记录一下,希望可以帮到你。
一、操作符的分类
(一)算数操作符
(二)移位操作符
(三)位操作符
(四)赋值操作符
(五)单目操作符
(六)关系操作符
(七)逻辑操作符
(八)条件操作符
(九)逗号表达式
二、操作符介绍
(一)算术操作符
算数操作符包含: + - * / %(分别为:加法运算;减法运算;乘法运算;除法运算;取余运算)
(二)移位操作符
移位操作符包含: >> << (分别为:右移操作符;左移操作符)
注:移位操作符移动的是二进制位(补充:一个二进制整数有四个字节,一个字节等于8个比特位,所以一个整数有32个二进制位)
(三)位操作符
位操作符包含:& ^ | (分别为:按位与;按位异或;按位与)
(四)赋值操作符
赋值操作符包含:= += -= *= /= &= ^= |= <<= >>=
使用:
1. = 将符号右侧的操作数赋值给左侧的操作数
例如:a=1(将1赋值给a)
2.+= 相当于a=a+1
例如:a+=2 等同于 a=a+2
3.-= 相当于a=a-1
例如:a-=2 等同于 a=a-2
4*= 相当于a=a*1
例如:a*=2 等同于 a=a*2
5./= 相当于a=a/1
例如:a/=2 等同于 a=a/2
6.&=
7.^=
8.|=
9.<<= 相当于a=a<<1
例如:a<<=2 等同于 a=a<<2
10.>>= 相当于a=a>>1
例如:a>>=2 等同于 a=a>>2
(五)单目操作符
1. ! 逻辑反操作符
例如:
int main()
{
int a=1;
printf("%d\n",!a);
}
结果为:0
补充:0为假;1为真
2. - 负值
例如: int a=-1 //此处的“-”代表负值
3. + 正值
例如:int a =+1(+可忽略) //此处的“+”代表正值
4. & 地址符
例如:scanf("%d\n",&a);
5. sizeof 计算类型或数组长度
单位:字节
6. ~ 对一个数的二进制按位取反
注:数据在内存中存储是以补码形式存储的
补充:二进制的表示形式:
例如:整数1
原码:00000000000000000000000000000001
反码:011111111111111111111111111111110
补码:011111111111111111111111111111111
~1:
结果:11111111111111111111111111111110
7. - - 前置,后值- -
例如:
int main()
{
int a=5
printf("%d\n",--a);
printf("%d\n",a--);
}
运行结果:4
4
说明:--a(先将a的值减一再输出)
a--(先输出,再将a的值减一)
综上:执行第一输出时a先减一,再输出,当执行第二个输出时a的值已经是4,有因为a--是先输出,再减一,所以结果为4,4。
8. ++ 与--原理相同(不再解释)
9. * 间接访问操作符
10. (类型) 强制转换操作符
(六)关系操作符
> >= < <= != ==
(七)逻辑运算符
&& 与
|| 或
(八)条件操作符
? : (三目操作符)
例如:
格式:exp1?exp2:exp3
注:如果exp1成立,exp2进行计算,结果为exp2
如果exp1不成立,exp3进行计算,结果为exp3
(九)逗号表达式
介绍:逗号隔开的一串表达式
注:计算时从左向右计算,最终结果为最后一个表达式的结果
例如:int a=5,b=6,c=7;
printf("%d\n",a=b-1,c=a-1,b=c-1);
结果为:3
关于操作符,我懂得也就这些,希望可以帮到你,大家一起进步,加油,当然,在之后的日子里我也会不断更新内容,你们的肯定,就是我最大的动力,谢谢。