当前位置:编程学习 > C/C++ >>

#include<stdio.h> void main() { int a=5;float f=7.8; printf("int + float: %d\n",sizeof(a+f));}

a+f 是多少 c++6.0 的运行结果是4 资料书上的结果是8 书上说flaot型运算前必须转换成double型 。到底哪个是对的
其他:运行结果是4,这涉及到数据从高向低默认转化数据截断的过程。
重点在float f = 7.8这一句,右值在编译器里会默认的类型是const double的字面值,存储为8 bytes ,在赋值给float类型时,会将数据截断为4 bytes ,后面的加法a+f结果为float类型,float是4 bytes的,所以结果应该是4 

上一个:结构体指针练习
下一个:c语言中 \x0 是什么意思

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,