看下这个警告是什么意思

paschen 版主 2012-03-29 12:43:17
这种写法为何总会出现一个警告:


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下调试的
...全文
275 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kaile 2012-03-29
  • 打赏
  • 举报
回复
不要滥用逗号表达式
paschen 版主 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

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”
[/Quote]

说的很到位,学习了。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
三个警告的意思分别是:
第一个,在不需要变量类型的地方写下了变量类型,发出警告,忽略
第二个,不标准的表达式,发出警告,忽略
第三个,由于循环初始化中的double被忽略,因此认为j是int型变量,j+=0.5被看做一个int型变量自加了一个double型变量,发出精度损失警告
[/Quote]
正解学习了。。。
GlorinLi 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
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”
[/Quote]
正解正解,大家都忽略了不同类型变量的定义是要用";"隔开的,而不是","。
baichi4141 2012-03-29
  • 打赏
  • 举报
回复
三个警告的意思分别是:
第一个,在不需要变量类型的地方写下了变量类型,发出警告,忽略
第二个,不标准的表达式,发出警告,忽略
第三个,由于循环初始化中的double被忽略,因此认为j是int型变量,j+=0.5被看做一个int型变量自加了一个double型变量,发出精度损失警告
pengzhixi 2012-03-29
  • 打赏
  • 举报
回复
int i=0,double j=0
这里是不能有2中类型变量的定义的。
baichi4141 2012-03-29
  • 打赏
  • 举报
回复
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”
muyi66 2012-03-29
  • 打赏
  • 举报
回复
编译器认为那个地方不适合定义double类型的变量。因为传统上都是定义整型的循环计数变量吧。
夜雨十年灯 2012-03-29
  • 打赏
  • 举报
回复
定义在循环外,在for语句中直接用
蓝枫10 2012-03-29
  • 打赏
  • 举报
回复
for(int i=0,double j=0;i<5;i++,j+=0.5) //不能定义两个不同类型的变量

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧