运算符的种类、优先级、和结合性
种类
整型数据相互运算结果为整型,浮点型同理。
//01 自增自减的区别案例
#include <stdio.h>
int main()
{
int a = 10;//自增自减操作前变量需要赋值
a++;//变量自增
printf("%d\n",a);
a--;//变量自减
printf("%d\n",a);
int sum;
sum = a++ * 10;//变量先参与运算后自增
printf("%d\n",sum);
sum = ++a * 10;//变量先自增后参与运算
printf("%d\n",sum);
return 0;
}
- 赋值运算符
//02 双符号使用案例
#include <stdio.h>
int main()
{
int a = 10;
a += 10;
printf("%d\n",a);
a = a + 10;
printf("%d\n",a);//两行控制代码功能相同,其他双符号代码同理
return 0;
}
- 比较运算符
//03 比较运算符使用案例
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
printf("%d\n",a > b);
printf("%d\n",a < b);
printf("%d\n",a <= b);
printf("%d\n",a != b);
printf("%d\n",a == b);//返回值返回的是1或0,真或假
return 0;
}
- 逻辑运算符
//03 逻辑运算符使用案例
#include <stdio.h>
int main()
{
//所有非0的值都是真值
int a = 10;
int b = 20;
int c = 0;
int d = 0;
printf("%d\n",!a);// !非真为假,非假为真
printf("%d\n",a && b);
printf("%d\n",a && c);// && 同真为真,其余为假
printf("%d\n",a || b);
printf("%d\n",a || c);
printf("%d\n",c || d);// || 同假为假,其余为真
return 0;
}
优先级
算术>比较>逻辑
数据类型之间的转换
//04 数据类型转换案例
#include <stdio.h>
int main()
{
int a = 10;
float b =1.234 ;
//??double
double sum;
sum = a * b;
printf("%lf\n",sum);//转换类型符合转换原则,由编译器完成,属于隐式转换。
int c;
c = (int)b;
//浮点型高于整型,此处由高转低,为强制转换。
//强制转换不会采取四舍五入。
printf("%d\n",c);
return 0;
}