3.1 常用运算符分类
3.2 算术运算符
+-*
/(除法)的运用
输入:int a = 5;
int b = 2;
double c;
c = a/b;
printf("c1 = %lf\n, c")
输出: c = 2.000000 //此处的结果为整数
//两个数相除,要想要得到小数分子分母必须有一个是小数,否则结果只会取整
输入:c = 1.0/2;
printf("c3 = %lf\n", c ");
输出: c3 =0.500000
输入:1c =1/2.0;
printf("c3 =%lf\n",c);
输出;0.500000
输出:c = a*1.0/b;
printf("c4= %lf\n"c);
输出:2.500000
%:取余数
如:10 % 3
结果: 1
全部输入:int a =1;
int b =0;
前自增:++
//前置++,先加后用
//1.先把a的值加1
//2.再把a加完1的值赋值给b
输入:b = ++a;
printf("a1 = %d, b1 = %d\n", a, b);
输出:a=2 b=2
后自增:++
//后置++,先用后加
//1.先把a的值赋值给b
//2.a再自加1
输入:b = a++;
printf(”a2 = %d, b2 = %d\n“, a b);
输出:a = 2 b= 1
特别:
a =1;
b =0;
a++; //先执行完此语句,在往下执行
b = a; //执行到此语句,a的值已经是2
printf("a3 = %d, b3 = %d\n",a b);
3.3 赋值运算符
3.4 比较运算符
+=:
输入:a =2;
a += 2; //a =a+2
输出:a = 4
3.5 逻辑运算符
逻辑真假
非0就是真,通常以1表示
0就是假,以0表示
//因为4==3条件为假,所以结果为0
输入:printf("4 == 3 结果为: %d\n", 4 == 3);
输出:0
//因为4>3条件为真,所以结果为1
输入:printf("4 > 3结果为:%d\n",4 > 3);
输出;1
// !,将真变假,假变真
输入:printf("!(4 == 3)结果为:号d\n"!(4 = 3));
输出:1
//&&,左右结果都为真,整体结果就为真
输入:printf("1 && -1 结果为: %d\n",1 && -1 );
输出:1
//如是有一个不是真,则结果为假
输入:printf("1 && 0结果为:%d\n”, 1 && 0);
输出:0
// ||,只要有一边是真,结果就为真
输入:printf("1 || 0结果为:%d\n”,1 || 0);
输出:1
输入:printf("0 ||0结果为:%d\n”,0 || 0);
输出:0
3.6 运算符优先级
3 < a < 10; //er
3 < a && a < 10 ;
短路规则(优化)
||,左边为真,右边不执行
&&.左边为假,右边不执行
输入:int = 0;
printf(“before c = %d\n", c);
// ||,左边为真,石边不执行
输入:1 || c =(250)
printf(“after c = %d\n", c);
输出:before c = 0
after c= 0
//1、||优先级高于 =
//2、先算 1 |l c 结果为真,1
//3、1= 250常量不能修改
//1 || c=250; //err
0 || (c = 250); //左边为假,右边就执行
printf("after c = %d\n", c);
输出:before c = 0
after c= 250
3.7 类型转换
3.7.1隐式转接
3.7.2 强制转换
//强制类型转换: (类型) 需要转换的变量名
输入:
double a;
//把1强制转换为浮点型后再运算
a = (double)1/2;
printf("a =%lf\n",a);
输出:0.500000
//关于浮点型打印说明
输入:int main()
int a=11;
//整型变量不要用%lf打印,除非强制类型转换
printf("a=%lf\n",(double)a);
double b=88.14;
//浮点型变量不要用%d打印,除非强制类型转换
printf("b =%d\n"(int)b);
//制类型转换原则:数据类型小的往大的转换
输入: int a= 129;
char b=111; //数据类型,char小于int
//小的往大的转换
a=(int)b;
printf("a=%d\n"a);
输出:a = 111
//大的往小的转换
b =(char)a;
printf("b =%d\n",b);
输出:b = -127