1.算术操作符
+、-、*、/ —— 用于整数和浮点数
% —— 两个操作数都必须是整数
2.移位操作符
2.1 左移操作符
(1)左边丢弃,右边补0;(2)原来的值不会被改变;(3)移n位,相当于乘以2的n次方;
2.2 右移操作符
(1)算术右移:右边丢弃,左边补齐符号位;
(2)逻辑右移:右边丢弃,左边补0;
3.位操作符 &,|,^
3.1 & 同是1时为1,一个为0则为0;
3.2 | : 有一个为1则为1,其余为0;
3.3 ^ :相同为0,相异为1;
a^a = 0; a^0 = a;
4.赋值操作符 =
int a = 4; //初始化 a = 10; //赋值
5.复合赋值操作符 +=,-=,*=,/=, %=, >>=, <<=, &=, |=, ^=
int a = 0; a = a + 10; a += 10;
6.单目操作符 !, -, +, &, sizeof, ~(按位取反), --, ++, *(解引用操作), 强制类型转换
6.1 !:表示真假
int main() { int flag = 10; printf("%d\n", !flag); system("pause"); return 0; }
6.2 & :取址操作符
int main() { int a = 10; printf("%p\n", &a); int arr[10] = { 0 }; printf("%p\n", arr); //首地址 printf("%p\n", arr+1); //数组第二个地址,和arr相差4个字节 printf("%p\n", &arr); //整个数组的地址 printf("%p\n", &arr+1); //下一个数组开始的地址 system("pause"); return 0; }
6.4 sizeof(不是函数,是操作符)
int main() { int a = 10; printf("%d\n", sizeof(a)); //4 printf("%d\n", sizeof(int)); //4 int arr[10] = { 0 }; printf("%d\n", sizeof(arr)); //40 printf("%d\n", sizeof(int [10])); //40 system("pause"); return 0; }