算术操作符
+
-
*
/
%
1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
移位操作符
<< 左移操作符 //左边抛弃、右边补0
>> 右移操作符 1. 逻辑移位
左边用0填充,右边丢弃
2. 算术移位
左边用原该值的符号位填充,右边丢弃
注:移位操作符的操作数只能是整数。
位操作符
& //按位与 操作的是二进制位,只要有0就是0
| //按位或 操作的是二进制位,只有有1就是1
^ //按位异或 操作的是二进制位,两个相同为0,相异为1
注:他们的操作数必须是整数
复合赋值符
+= //a+=b;a+b赋值给a,以下同理
-=
*=
/=
%=
>>=
<<=
&=
|=
^=
单目操作符介绍
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反 //一个数补码的二进制位进行取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
sizeof 和 数组
数组名是首元素的地址,但是有两个例外
(1)sizeof(数组名),数组名如果单独放在sizeof内部,这里的数组名表示整个数组,计算的是整个数组的大小
(2)&数组名,这里的数组名表示多个数组,去除的是整个数组的地址//除此之外,遇到的所有数组名都是首元素地址
关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
条件操作符
exp1 ? exp2 : exp3 //判断表达式1是否为真,为真执行表达式2,为假执行表达式3
例: ret=a>b?a:b//如果a大于b为真,给ret赋值为a否则赋值为b
下标引用、函数调用和结构成员
1. [ ] 下标引用操作符
操作数:一个数组名 + 一个索引值
例:
int arr[10];//创建数组
arr[9] = 10;//实用下标引用操作符。
[ ]的两个操作数是arr和9。
9.1 访问一个结构的成员
. 结构体.成员名
-> 结构体指针->成员名