C语言提供了非常丰富的操作符,使用起来就非常灵活
操作符
目录
1.算数操作符
注意:
1.除号两端都是整数的时候,执行的是整数除法,如果两端只要有一个浮点数就执行浮点数除法
2.取模操作符的两个操作符只能是整数
2.移位操作符
有关二进制的运算
3.位操作符
4.赋值操作符
(1)赋值操作符 =
int a = 0;//初始化(碰见变量的同时给他一个值)
a = 20 ; //赋值
(2) += -= *= /=
a = a+3;
a += 3;//上面式子的简化
5.单目操作符(只有一个数的操作符)
操作符 | 用法 |
---|---|
! | 逻辑取反操作(0表示假的,非0表示真) |
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型长度(以字节为单位) |
– | 前置,后置– |
++ | 前置,后置++ |
(类型) | 强制类型转换 |
* | 间接访问操作符(解引用操作符) |
~ | 对一个数的二进制位按位取反 |
! :取反操作符的用法
例子
int main()
{
int flag = 0;//给变量赋值0,说明flag为假
if (!flag)//flag为假,!flag为真 if后面括号里面的内容是真,则进行下一步输出
printf("hello\n");
return 0;
}
打印结果为hello
int main()
{
int flag = 2;//给变量赋值2,说明flag为真
if (!flag)//flag为真,!flag为假 if后面括号里面的内容是假,则无法进行下一步输出
printf("hello\n");
return 0;
不打印
sizeof:单目操作符,并非函数:计算操作数的类型长度
int a = 0;
printf("%d\n",sizeof(a));//计算变量a的、长度
//输出结果为 4(单位是字节)
printf("%d\n",sizeof(int));//计算int类型的长度
//输出结果为 4
int arr[10] = {0};
printf("%d\n",sizeof(arr));//计算整个数组的大小
//输出结果是 40
printf("%d\n",sizeof(arr[0]));//计算整个数组第一个元素的大小
//输出结果是 4
printf("%d\n",sizeof(arr)/sizeof(arr[0]));//计算数组元素个数
//输出结果为 10
++ / - -
后置++的计算规则:先使用,后++
先把a值赋给b,之后a再进行+1
int a = 10;
int b = a++;//+加号在后面,即为后置++
printf("%d\n",a);//a = 11
printf("%d\n",b);//b = 10
前置++的计算规则:先++,后使用
先把a进行+1,再将a值赋给b
int a = 10;
int b = ++a;//+加号在前面,即为前置++
printf("%d\n",a);//a = 11
printf("%d\n",b);//b = 11
(类型)强制类型转换
int a = 3.14;
//3.14为浮点数,编译器默认这种字面浮点数为double类型
要想式子成立,将进行强制类型转换
int a = (int)3.14;
//强制类型转换需要把括号括在类型上
printf("%d\n",a);
6.关系操作符
!= 操作符:测试是否不相等 == 操作符:测试是否相等
7.逻辑操作符
8.条件操作符(三目操作符)- 有三个操作数
(a>b ? a : b)
//如果a>b表达式为真, 则式子结果为a
//如果a>b表达式结果为假, 则式子结果为b
int a = 10;
int b = 20;
int c = (a>b ? a : b);//a>b为假 c被赋予b的值
printf("%d\n",c);
//输出结果为 20
9.逗号表达式
逗号表达式:用逗号隔开的一串表达式
逗号表达式的特点是:从左向右 依次计算,整个表达式的结果为最后一个表达式的结果
int a = 10;
int b = 20;
int c = 0;
int d = (c = a-2 , a = b+c , c-3);
//c=10-2=8,a=20+8=28,c-3=8-3=5;
printf("%d\n",d);//d为最后一个表达式的值
输出结果为 5
10.下标引用,函数调用和结构成员
-
int arr[3] = 10;
[ ] :下标引用操作符 arr 和3 就是[ ] 的操作数 -
( )
函数调用操作符
int Add(int x,int y)
{
return (x+y);
}
int main()
{
int sum = Add (2,3);//此处的括号就是函数调用操作符,Add ,2, 3都是(的操作数)
return 0;
}