c++程序问题(程序见下),为什么 return 的值不是int也可以编译成功?

来源:百度知道 编辑:UC知道 时间:2024/07/03 10:37:25
#include "stdafx.h"
#include <iostream>

int main()
{
std::cout<<"Hello,world!"<<std::endl;
getchar();
return 1.5;
}
我用的产visual c++2005速成版

warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data
这又一个默认强制类型转换的问题存在。把double类型的1.5强制的转换成int型再执行返回语句

这就是所谓的 类型隐式转换

就象定义
double a=1.2;
int s=a;
可以编译成功一样!
低级类型可以向高级类型转换,但是高级向低级转换的话可能造成数量丢失,系统会给warning

编译可以成功。但是。。。实际上用到return值的时候。就会出错的

可以吗?我的编译器报错了啊,你再仔细看看