1.算术操作符: + - / %
/ : 整数除整数只会得整数,不会有小数,例9/2得4,若9/2.0才是4.5。
% : 9%2 取余数,9/2商4余1,得1
2.移位操作符:>> <<
左移,右移是针对二进制来说
例:
int main()
{
int a= 2;
int b= a<<1;
printf("%d\n",b);
return 0;
}
整型(4bit=32字节)2的二进制数字为
000000000000000000000000000000010
左移一位
000000000000000000000000000000100
变成了4
3. 位操作符:
&:按位与
|:按位或
^:按位异或
4.赋值操作符:
= :int a=2 a=a+5
+= :a=a+5 a+=5
-= :a=a-5
*= :a=a*5
/= :a=a/5
<<= :a=a<<5
>>= :a=a>>5
&= :a=a&5
^= :a=a^5
|= : a=a|5
5.单目操作符
a+b ,有两个操作数a,b叫双目操作符;
则只有1个操作数叫单目操作符。
!:逻辑取反
-: 负值
+:正值
&:取地址 * :间接访问操作符
sizeof():计算类型,变量,数组大小的(字节大小)
计算变量大小括号可以省略,
sizeof不是函数。
数组总大小(元素数×类型大小),可以求数组元素个数。
例:
a= sizeof(arr)/sizeof(arr[0])。
~ : 对二进制按位取反(注意数据类型)
取反后的二进制是补码,要把补码变为原码(补码-1取反且第一位不变)
--:
int main()
{
int a=10
int b =--a
}
前置--,先--,后赋值
则a=9 b=9.
int main()
{
int a=10
int b =a--
}
后置--,先赋值,后--
则b=10 a=9
++也同理
++:
():强制类型转换:把double转换为int int a=(int)3.14
6.关系操作符
>:
>=:
<:
<=:
!=:不等于
==:
7.逻辑操作符
&&:逻辑与 全1则1,有0则0 ,两个都是真(1),结果才是真,只要有一个假(0),结果是假
||:逻辑或 全0则0,有1则1 两个都是假(0),结果是假,只要有一个真(1),结果就是真
8.条件操作符(三目操作符)
exp1?exp2:exp3(exp为表达式)
若exp1成立,exp2计算,整体表达式输出exp2的结果
若exp1不成立,exp3计算,整体表达式输出exp3的结果
int main ()
{
int a=0;
int b=3;
int c=0;
if (a>b)
c=a;
if (b>a)
c=b;
return 0;
}
找ab最大值并赋值给c的代码可以用
c=a>b?a:b 这行代码实现
9.逗号表达式
逗号隔开的一串表达式
从左向右依次计算,并且整个表达式的结果是最后表达式的结果
10.下标引用 [ ]
int arr[10] ={ 1,2,3,4 };
arr[ 0 ] =1;
11.函数调用 ()
调用函数时,函数名字后面的()
printf("hello\n")
12.结构成员 . ->