#include
void main()
{
int i = 5;
float a = 242.15,b;
double c = 123456789.456123;
char d = 'B';
unsigned char e;
printf("i = %d,a = %f,c = %f,d = %c,d = %d\n",i,a,c,d,d);
b = i; // int ---> float
i = a; // float ---> int
a = c; // double ---> float
d = i; // int ---> char
e = d; // char ---> unsigned char
printf("i = %d,a = %f,b = %f,d = %c,d = %d,e = %c,e = %d\n",i,a,b,d,d,e,e);
}
运行结果:
i = 5,a = 242.149994,c = 123456789.456123,d = B,d = 66
i = 242,a = 123456792.000000,b = 5.000000,d = ?,d = -14,e = ?,e = 242
1)将 float 型变量数据赋给 int 型变量时,先将 float 型数据舍去小数部分,然后再赋给 int 型变量;
2)将 int 型变量数据赋给 float 型变量时,现将 int 型数据转换为 float 型数据,并以浮点数形式存储到变量中,其值不变;
3)double 型变量赋给 float 变量时,先截取 double 型实数得前7位有效数字,然后赋给 float 型变量。
对于此时 float 变量输出的第8位以后的数字就是不可信数据了;
4)int 型数据赋给 char 型变量时,由 int 型数据用2个字节表示,而 char 型数据用 1 个字节表示,所以先截取 int 型数据的低8位,然后赋值给 char 型变量。
因此,char 型变量只能精确接受小于 256 的 int 变量;
5)有符号字符型数据的范围是 -128~127,而无符号型数据的范围是0~255
阅读(1084) | 评论(0) | 转发(0) |