在for语句的init-expression中声明多个类型变量

时间:2014-01-13 19:44:02

标签: c declaration

在更复杂的for loops中,我用来在for中声明更多的一个变量,如果它们用于迭代,则类似:

for (int i = 0, j = size; i < j; ++i, --j)

直到最近我才认为它是for语法,但现在我知道int i = 0, j = size被视为一个声明,++i, ++j被视为由{{分隔的两个表达式1}}。这意味着我只能在for。

comma operator中声明一种类型的变量

如何在更多类型的init-expression变量中声明,例如:

for statement

我知道我可以在for (int i = 0, auto it = v.begin(); ..; ..) 之外声明变量。这些例子是我刚才提出的,所以也许它们没有意义,但我遇到了一些真实的例子,在for中声明更多变量对我来说似乎是合乎逻辑的。

2 个答案:

答案 0 :(得分:3)

你做不到。一个简单的规则是,for循环可以声明多个变量,只要所有变量具有相同的类型

答案 1 :(得分:-1)

你实际上可以。请参阅以下示例:

for(int i=0,j=1;i<=5,j<=5;i++,j++)

因为i和j在条件语句中用逗号分隔,因为j在i后面递增,只要j满足其条件,即达到计数5,该循环将终止。因此,您需要处理第二个变量的条件。