首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看下这个警告是什么意思解决办法

2012-04-12 
看下这个警告是什么意思这种写法为何总会出现一个警告:C/C++ codevoid main(){for(int i0,double j0i5

看下这个警告是什么意思
这种写法为何总会出现一个警告:

C/C++ code
void main(){        for(int i=0,double j=0;i<5;i++,j+=0.5)    {        cout<<i<<endl;        cout<<j<<endl;    }}


C:\Users\top\Desktop\ss\ss.cpp(10) : warning C4518: 'double ' : storage-class or type specifier(s) unexpected here; ignored
C:\Users\top\Desktop\ss\ss.cpp(10) : warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored
C:\Users\top\Desktop\ss\ss.cpp(10) : warning C4244: '+=' : conversion from 'const double' to 'int', possible loss of data

我把定义写在循环外,就不会出现这个警告。
但是为何写在循环头部会出现警告呢?而且j的值输出的也一直是0
我是在VC6下调试的

[解决办法]
int i=0,double j=0

“,”运算符不能连接两个变量定义表达式
不管是“int i=0, doube j=0”还是“int i=0, int j=0”都一样
在这里你只能使用一个变量定义表达式,即“int i=0, j=0”或者“double i=0, j=0”
[解决办法]
三个警告的意思分别是:
第一个,在不需要变量类型的地方写下了变量类型,发出警告,忽略
第二个,不标准的表达式,发出警告,忽略
第三个,由于循环初始化中的double被忽略,因此认为j是int型变量,j+=0.5被看做一个int型变量自加了一个double型变量,发出精度损失警告

热点排行