免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 坐在地平线
打印 上一主题 下一主题

[C] c语言中关于for循环的问题 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2011-11-07 14:40 |只看该作者
第二個程序不報錯只能是編譯器做的有問題。話說 VC6 有這麼爛麼?不應該呀。
MMMIX 发表于 2011-11-06 11:44



    VC6本来就不是很支持标准C嘛

论坛徽章:
0
42 [报告]
发表于 2011-11-07 15:01 |只看该作者
学 C 就不要用 C++ 的环境了。
MMMIX 发表于 2011-11-03 18:15


VC++6比起C来更不适合学C++。
当然,学C99也很不适用。

论坛徽章:
1
水瓶座
日期:2014-03-20 18:21:14
43 [报告]
发表于 2011-11-07 15:13 |只看该作者
标准的存在有其重要的意义。
但在标准的实现中却经常是实现的是部分标准。
同时标准外还有一些潜规则。
lhy0416 发表于 2011-11-07 10:56



    潜规则?

比如 0==a ?

论坛徽章:
1
水瓶座
日期:2014-03-20 18:21:14
44 [报告]
发表于 2011-11-07 15:15 |只看该作者
老老实实把 i 定义到for外面就得了,何必跟编译器过不去呢,写代码的重点应该在模块划分、业务逻辑设计,而 ...
drangon 发表于 2011-11-07 10:46



    你没发现很多人(包括本版一些著名人物)正是乐于此道么,比如那个经典的i+=i--=……

论坛徽章:
0
45 [报告]
发表于 2011-11-07 15:15 |只看该作者
潜规则?

比如 0==a ?
ecloud 发表于 2011-11-07 15:13



    苹果装B大神V5

论坛徽章:
2
技术图书徽章
日期:2015-12-16 09:12:1619周年集字徽章-庆
日期:2019-09-12 16:09:19
46 [报告]
发表于 2011-11-07 17:57 |只看该作者
回复 1# 坐在地平线


    在for 後的範圍加上花括號就清楚怎麼回事了.

论坛徽章:
0
47 [报告]
发表于 2011-11-08 01:07 |只看该作者
建议看《C程序设计语言》,或者c99,变量的作用域问题

论坛徽章:
0
48 [报告]
发表于 2011-11-08 08:52 |只看该作者
很明显的错误,for循环中定义的局部变量,在for{}之内有效,for外面是无效的。这个是变量作用域的问题。

但是在函数外引用,能读取到正确值的话,是因为那个变量的空间还未被重新使用,保存有原来的值。其实你引用的是垃圾内存,它是不可靠的。

论坛徽章:
0
49 [报告]
发表于 2011-11-08 09:29 |只看该作者
回复 1# 坐在地平线


    当初我也有同样地疑惑,感慨一下,其实这个问题就是变量的生命周期问题,有C中就有全局变量和局部变量的区别嘛。第一个代码中count是在main函数中声明的,所以它的生命周期是整个main函数,当main函数执行完了,它也就被释放了。第二个函数在for的初始化语句中声明,它的生命周期就是整个for循环,当for循环结束了,它也就被释放了。就是这么个意思。

论坛徽章:
0
50 [报告]
发表于 2011-11-15 14:44 |只看该作者
用 Code::Blocks 吧,免费、开源且比 VC++ 小巧,装完后再找个本地语言包汉化下就好了

回复  lz_fine
我的是在windows xp下visual C++6.0环境,谢谢了,我不会在纠结这个问题了。
坐在地平线 发表于 2011-11-03 17:29
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP