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*PIrPI都换成double型,计算结果也为double型,但S为整形,所以结果仍为整形,精度损失了,可将s定义为double或者float,解决精度问题。

 

强制转换

1.       一般形式:(类型说明符)(表达式)

2.       Eg:(floata ;(int)(x+y);注意括号

 

两种转换类型均为临时转换,在一句中进行转换,下一句还是原来类型。

 

{

Printf(“%d\n”,3/2);

}    运行结果为因为%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--ii++i--

Eg: 

 

 

 

 

 

 

 

3.       复合的赋值运算符

X*=Y+7 等价于X=X*(Y+7)

4.       逗号运算符:

Y=(x=a+b),(b+c); 最后面的表达式值赋值给Y

 

例子:

 

 

 

例子:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-10-17 18:58  Surveyor  阅读(213)  评论(0编辑  收藏  举报