注意点:
1逻辑表达式操作符! && ||
2条件表达式: expr1 ? expr2: expr3
当expr1为真时,表达式值为expr2
当expr1为假时,表达式值为expr3
printf("%d\n" , 0? 100: 200);//假,显示200
printf("%d\n" , 1? 100: 200);//真,显示100
3逗号表达式:
//int a = (12, 13, 14);//用逗号连接的若干个表达式,取最后一个值//
//printf("%d\n", a);
4按位表示:
5移位操作:
m>>1表示M的所有位右移一位,左侧填充0,M<<1
6:类型转换与
//int a = 3;
//int b = 10;
//double result = (double)3 / 10;//类型转换与提升//
//printf("%lf", result);
把double型数值赋值给int型,就只能显示整数,小数部分被截断;但把int型数值赋值给doble型,则不会损失数据。
每一种类型都有一种表示范围,从高到低转换会发生数据损失或截断,从低到高转换不会发生数据损失。从高到低依次是 double>int>short>char float<double
13+(int)25.3; //(int)将25.3强制转换成25
7.优先级与结合顺序
int a = 200;
int d = 10;
printf("%d\n", a + (d > 100));//优先级设置//
printf("%d\n", (a + d)> 100);
printf("%d\n", a + d > 100);
算数操作符优先级: * / % + -
逻辑运算优先级: ! && ||