看下这个警告是什么意思解决办法
看下这个警告是什么意思这种写法为何总会出现一个警告:C/C++ codevoid main(){for(int i0,double j0i5
看下这个警告是什么意思
这种写法为何总会出现一个警告:
C/C++ codevoid 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型变量,发出精度损失警告