【发布时间】:2014-02-01 17:05:52
【问题描述】:
在更复杂的for loops 中,我使用在for 中声明多个变量,如果它们用于迭代,则类似于:
for (int i = 0, j = size; i < j; ++i, --j)
直到最近我还认为它是for 语法,但现在我知道int i = 0, j = size 被视为一个声明,++i, ++j 被视为由comma operator 分隔的两个表达式。所以这意味着我只能在 for 的init-expression 中声明一种类型的变量。
如何在for statement 变量中声明更多类型,例如:
for (int i = 0, auto it = v.begin(); ..; ..)
我知道我可以在for 之外声明变量。这些例子是我刚刚想出来的,所以也许它们没有意义,但我遇到了一些真实的例子,在for statement中声明更多变量似乎是合乎逻辑的。
【问题讨论】:
-
@ShafikYaghmour;变量仍然具有相同的类型,即
loopy。 -
声明语句中的逗号没有按照您的想法执行,当然也不是在增量语句中执行的操作。前者分隔相同类型的 id。认为在 for 循环上下文外部执行此操作同样无效:
int a=0, long x=1; -
@WhozCraig 我知道,我什至在问题中说过自己。我想知道是否有办法声明不同类型的变量。
-
标签: c declaration