常用运算符分类
算数运算符
自增
前自增:先自增1,再计算表达式。
后自增:先计算表达式,再自加1。
示例:
#include<stdio.h>
int main(void)
{
int a = 10;
int b = ++a * 10;//前自增,先自加1再计算表达式的值
printf("%d\n", b);
printf("%d\n", a);
return 0;
}
结果:
110
11
#include<stdio.h>
int main(void)
{
int a = 10;
//int b = ++a * 10;
int b = a++ * 10;//后自增,计算完表达式后再自加1。
printf("%d\n", b);
printf("%d\n", a);
return 0;
}
结果:
100
11
赋值运算符
比较运算符
- C 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。
示例:
#include<stdio.h>
int main(void)
{
int a = 10;
int b = 20;
int c = 30;
printf("%d\n", c = ++a <= b * 2);//运算优先级
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", c);
return 0;
}
结果:
1
11
20
1
逻辑运算符
运算符优先级
单目运算符高于双目运算符
常用的运算符优先级
逗号表达式:将逗号后面的值赋值给等号前面的变量。
示例:
int main(void)
{
int a = 10;
int b = 20;
int c = (a, b+10);
printf("%d\n", c);
return 0;
}
结果:
30
类型转换
数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。
转换的方法有两种:
- 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成。
- 强制类型转换:把表达式的运算结果强制转换成所需的数据类型。
类型转换的原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。
强制转换
强制类型转换指的是使用强制类型转换运算符,将一个变量或表达式转化成所需的类型。
示例:
#include<stdio.h>
int main(void)
{
float p = 3.99;
int w = 2;
//隐式转换
//double sum = p * w;
//(数据类型) 强制类型转换匀运算符,不会四舍五入
int sum =(int) p * w;
//int sum = (int)(p*w);
printf("%d\n", sum);
return 0;
}
结果:
6