c语言3
数据类型的转换
自动转换
1. 转换按数据长度增加的方向进行;
2. 有小数点的为double型,float没小数点;
3. Char,short,型参与运算时,必须先转换成Int型;
4. 赋值运算符“=” 右边量的类型将全部转为左边量的类型;
5. 自动转换规则:
Char,short→int→unsigned→long→double
Eg:{
Float PI=3.14159;
int s,r=5;
s=r*r*PI;
printf(“s=%d\n”,s);
}
PI为实型,s,r为整形,执行s=r*r*PI,r和PI都换成double型,计算结果也为double型,但S为整形,所以结果仍为整形,精度损失了,可将s定义为double或者float,解决精度问题。
强制转换
1. 一般形式:(类型说明符)(表达式)
2. Eg:(float)a ;(int)(x+y);注意括号
两种转换类型均为临时转换,在一句中进行转换,下一句还是原来类型。
{
Printf(“%d\n”,3/2);
} 运行结果为1 因为%d,要求输出为整型,舍弃小数。
{
Printf(“%f\n”,3/4);
} 会出现编译错误,3,4均为整型,输出却为%f(浮点型),改为3.0/4,则会转化,结果为0.750000;
{
Printf(“7÷2=%d······%d\n”,7/2,7%2);
} 结果为7÷2=3······1
算数运算符
1.优先级、结合性,记住表
2.自增自减运算符:++i、--i、i++、i--
Eg:
3. 复合的赋值运算符
X*=Y+7 等价于X=X*(Y+7)
4. 逗号运算符:
Y=(x=a+b),(b+c); 最后面的表达式值赋值给Y。
例子:
例子: