for 循环中声明变量的一个问题回顾
for 虽然是个非常简单的循环表达式,但对于新手来说,用好它却并不是一件简单的事情。
以前我曾经犯过一个错误,现在想起来是个很愚蠢的一个问题,但对于当时的我,却是一个很迷惘的事情。
复制代码
死活编译不过,老是提示 itMy 未声明,我也是百思不得其解啊。
过了一段时间之后,我看到相关资料的时候,才知道其中原委,原来 for 循环的声明中,只能声明一种类型的变量,而我上面那段代码中,声明了两种类型的 iterator,当然编译不过了。
比如说
复制代码
这样一段代码,不会有什么问题。
但如果换成
复制代码
就行不通了。当然,for 循环表达式中声明的变量作用域,也仅限于 for 循环内部,这是另外一个话题了。
所以,对于 C++的初学者来说,最重要的不是写了多少代码,而是在遇到问题的时候,多看书,尤其是多看经典的 C++著作,同时,一定要看 C++标准。市面上很多书都在无聊的讨论很多 C++中的未定义行为,其实在标准中,都已经讲的很清楚,未定义行为,就是怎么做都行,看编译器实现,所以嘞,就没必要扯来扯去了嘛。
版权声明: 本文为 InfoQ 作者【老王同学】的原创文章。
原文链接:【http://xie.infoq.cn/article/11ec6f8c35efbec6058c30d28】。文章转载请联系作者。
评论