我正在尝试理解C++
中的代码。我找到了这个循环:
for (i = 1, prev = fcu->bezt, bezt = fcu->bezt + 1; i < fcu->totvert; i++, prev = bezt++) {
// do something
此循环有多个声明。从来没有见过。
这相当于
for (i = 1; i < fcu->totvert; i++) {
prev = fcu->bezt;
bezt = fcu->bezt + 1;
// do something
prev = bezt++
}
感谢
答案 0 :(得分:3)
实际上更像是:
{
i = 1;
prev = fcu->bezt;
bezt = fcu->bezt + 1;
while (i < fcu->totvert)
{
// do something
i++;
prev = bezt++;
}
}
答案 1 :(得分:1)
不,我认为它等于:
prev = fcu->bezt;
bezt = fcu->bezt + 1;
for (i = 1; i < fcu->totvert; i++) {
// do something
prev = bezt++
}
for
中的列为for(initialization; condition; increment)
答案 2 :(得分:1)
不完全 - 它相当于:
<div class="variant--group">
<h3 class="variant--name">variant</h3>
</div>
<div class="variant--group">
<h3 class="variant--name">variant</h3>
</div>
<div class="variant--group">
<h3 class="variant--name">variant</h3>
</div>
第一个分号之前的所有内容都是初始化列表,它只在循环之前运行一次。
答案 3 :(得分:1)
你们两个循环并不相同。 for循环具有语法
for ( declaration(optional) ; condition(optional) ; increment(optional) )
declaration
仅在首次输入循环时运行,condition
在每个循环开始时运行,increment
在每次迭代结束时运行。如果你打破它,那么大多数等价的循环都是
prev = fcu->bezt;
bezt = fcu->bezt + 1;
for (i = 1; i < fcu->totvert; i++) {
// do something
prev = bezt++
}
答案 4 :(得分:1)
我c ++ for循环定义如下:
for ( init; condition; increment )
{
statement(s);
}
我认为代码可以通过这种方式重写:
prev = fcu->bezt;
bezt = fcu->bezt + 1;
for (i = 1; i < fcu->totvert; i++) {
// do something
prev = bezt++
}
答案 5 :(得分:0)
没有。 for循环
for (init; condition ; increment ) { body; }
相当于
init;
while(condition) {
body;
increment;
}
在你编写的循环中,你将由几个语句组成的init部分由“,”部分放在每次迭代执行的主体中(但它只执行一次)。