C语言中数据的强制转换
来源:互联网 发布:淘宝福尔摩斯探案全集 编辑:程序博客网 时间:2024/05/16 19:06
数据的强制转换分为两种:1.隐性转换
以下为数据类型及其所占字节:
数据类型
bool:1字节。0,1
int :4字节
char:1字节
float:4字节
double:8字节
short:2字节
long:4字节
long long :8字节
sizeof();一般用此函数求的数据类型的长度如:sizeof(int)=4;
转换一般由低转换到高。
1.关于隐性转换
如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体规定如下:
1) 实型赋予整型,舍去小数部分。前面的例子已经说明了这种情况。
2) 整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。
3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量
如:
【1】float a=0;
int b=1,c=1;
a=b+c;
结果:2.000000
将b+c的结果转换成浮点型
【2】float b=1.8;
int a=0,c=1;
a=b+c;
运行结果:a=2;
此时把整形的c先转化成浮点型的数据与b进行运算,再把浮点型的数舍去小数部分转化成整形;
【3】
char a='a';
int b=65;
printf("%c%d",b,a);
结果:97A
将整形b转化成字符型对应的ascii码的字符为A,将字符型a 转化成整形对应‘a’的ascii码为65;
2.显性转化:
【1】
int a=2,b=0,c=5;
float c=3.2,d=4.7,e=0;
b=(int)(c+d);
结果:b=7(舍尾)
将c+d的结果强转成整形赋给b
【2】
int a=2,b=0,c=5;
float c=3.2,d=4.7,e=0;
e=(float)c/a;
e=2.500000;先将c强制转化成整形,与a运算
若e=c/a;此时的结果为2.000000;因为c与a都为整形,整形间的运算结果为整形;
- C语言中数据的强制转换
- C语言中数据的强制转换
- c语言的强制转换
- c语言的强制转换
- C语言中强制数据类型转换的总结
- C语言中强制数据类型转换的总结
- C语言中强制数据类型转换的总结
- C语言中强制数据类型转换的总结
- C语言中int到float的强制类型转换
- C语言中int到float的强制类型转换
- C语言中强制类型转换的总结
- C语言中强制数据类型转换的总结
- C语言中强制类型转换总结
- C语言中强制数据类型转换
- C 语言中强制类型转换
- c语言强制转换
- c语言指针的强制转换
- C语言数据类型的强制转换
- C语言中的关键字
- C语言中的移位操作(逻辑移位和算…
- 两个整数 X 和 Y&n…
- VMware下建立ubuntu与window的共享…
- .NET 学习入门
- C语言中数据的强制转换
- C语言中if语句的短路原则
- printf 与scanf的输入输出修饰
- 指针数组与数组指针问题
- const指针的特殊性
- 函数间参数的传递
- 指针函数 函数指…
- linux下Deb软件包常用命令
- linux下常用的shell命令