声明一个int变量

时间:2011-04-16 14:43:54

标签: c++ declaration

for(int i=0; i < size; i++)

我在我的代码中声明了一个变量,如上所述收到编译时错误:根据ISO标准,类似这样的声明已经过时了。

然后我将变量外面声明为for循环

int i;
for(i=0; i < size; i++) 

.......它工作了????

有人可以告诉我这个声明,因为据我所知,在C ++中,我们可以声明变量不仅仅是在c中的顶部,而是在我们需要的时候在下面的任何地方。

我使用的编译器是gcc。

3 个答案:

答案 0 :(得分:2)

您可能正在使用gcc而不是g ++(或xl_C而不是xl_C ++等)进行编译。

否则,检查您是否未通过旧标准(使用-std = c89或-ansi)

答案 1 :(得分:1)

第一个声明仅在for循环的范围内声明i。第二个在外面的范围内宣布它。两者都完全有效。当你想在循环之后使用i的值时,你会使用第二种情况,这通常是你在循环中有一个break子句并希望找出哪一个的情况迭代你打破了循环。

答案 2 :(得分:1)

我猜你在循环结束后正在使用i

曾几何时,第一段代码相当于第二段代码,在外部的范围内声明i,所以这样的代码是可能的:

for (int i = 0; i < size; ++i) {
    // do something
}

if (i != size) {
    // do something else
}

在标准C ++中,这是无效的; i仅在循环体中可用,您需要在循环外部声明它以在那里访问它。

相关问题