以下代码将无法编译:
#include <iostream>
int main(){
for (int i = 0, double j = 0; i < 10; ++i, j+=.1){
std::cout << i << " " << j << '\n';
}
return 0;
}
是否可以初始化两种不同的类型,或者我需要创建一个结构/对/等?
不。
但是您可以在那里定义一个匿名结构:
for (struct { int i; double j; } x = {0,0}; x.i < 10; ++x.i, x.j+=.1)
{
std::cout << x.i << " " << x.j << '\n';
}
见初始化部分:
struct { int i; double j; } x = {0,0};
它定义了一个匿名结构,然后创建一个对象x
并用{0,0}
它初始化它的成员i
和j
with 0
。
不可能,但有办法:
double var1;
int var2;
for (var2 = 0,var1 = 0.0; var2 < 12; var2++){}
如果你想限制 f 和 i 的范围,然后将它们括在 {} 中,就像
{
double var1;
int var2;
for (var2 = 0,var1 = 0.0; var2 < 12; var2++){}
}
不,你不能。您可以有多个变量,但它们必须是相同的类型。
它们必须是相同的类型,但您可以使用结构来绕过它。
for (struct {int j; char i;} loop = {0, 'e'}; loop.i < 33; ++loop.j, ++loop.i)
{
std::cout << loop.i << '\n';
}
可以做以下
#include<cstdlib>
#include<iostream>
int main(int argc, char *argv[]){
int i; double j;
for(i = 0, j = 0; i < 10; ++i, j+= .1){
std::cout << i << " " << j << '\n';
}
return EXIT_SUCCESS;
}