免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4442 | 回复: 26
打印 上一主题 下一主题

[C++] for循环体声明的一个小问题 [复制链接]

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-03-03 17:01 |只看该作者 |倒序浏览
本帖最后由 zsszss0000 于 2015-03-03 19:54 编辑

为什么如下的声明会出错?
  1. for(int i=0,vector<int>::iterator ai=alph.begin();ai!=alph.end();ai++,i++)
复制代码
错误信息为
  1. aa.cpp|47 col 15| 错误: ‘std::vector<int>::iterator’声明无效                                                                              
  2. aa.cpp|47 col 37| 错误: expected ‘;’ before ‘ai’
复制代码
没有办法我只能改为
  1. int i=0;
  2. for(vector<int>::iterator ai=alph.begin();ai!=alph.end();ai++,i++)
复制代码
大家有遇到这种情况吗?
如果采用下面的形式定义的话
  1. for(int i=0,int j=0;i<100,j<100;i++,j++)
复制代码
并且采用 gcc -std=c99 编译的话,也不能通过。

总结一下,最好不要在for中定义变量。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:50:28
2 [报告]
发表于 2015-03-03 17:15 |只看该作者
第一次看到这种写法。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:01:44
3 [报告]
发表于 2015-03-03 17:25 |只看该作者
for(int i=0,j=0;i<100,j<100;i++,j++)  这个可以啊,
但是 for(int i=0,int j=0;i<100,j<100;i++,j++) 这个不行,
  “,”后面貌似不能跟其他类型了

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:50:28
4 [报告]
发表于 2015-03-03 17:34 |只看该作者
本帖最后由 www1862 于 2015-03-03 17:37 编辑

我想楼主的问题应该是 在同一行里定义不同类型的变量。c++可以在同一行里声明或者定义不同类型的变量吗?
int i, T j;//这样合法吗?

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
5 [报告]
发表于 2015-03-03 17:53 |只看该作者
是是,我弄错了,
  1. int main ( int argc, char *argv[] )
  2. {
  3.     int i=0;
  4.     int j=0;
  5.     for(i=0,j=0;i<100,j<100;i++,j++)
  6.     {   
  7.    
  8.     }   
  9.     return EXIT_SUCCESS;
  10. }/* end of function main  */
复制代码
类型在外面声明可以回复 2# www1862


   

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
6 [报告]
发表于 2015-03-03 17:56 |只看该作者
我也希望C++支持这种写法。。。

论坛徽章:
0
7 [报告]
发表于 2015-03-03 18:08 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
8 [报告]
发表于 2015-03-04 08:27 |只看该作者
folklore 发表于 2015-03-03 17:56
我也希望C++支持这种写法。。。

me too                                                                    

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
9 [报告]
发表于 2015-03-04 09:14 |只看该作者
这个可以吗,我昨天试了试  不可以吧。
sundae333 发表于 2015-03-03 17:25
for(int i=0,j=0;i

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:01:44
10 [报告]
发表于 2015-03-04 09:36 |只看该作者
回复 9# zsszss0000

可以的 我试了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP