是否可以在C++中的for循环的初始化体中声明两个不同类型的变量?
例如:
for(int i=0,j=0 ...
定义两个整数。可以在初始化体中定义int
和char
吗?如何做到这一点?
发布于 2010-04-22 08:15:42
不-但从技术上讲,有一个变通办法(不是说我真的会使用它,除非迫不得已):
for(struct { int a; char b; } s = { 0, 'a' } ; s.a < 5 ; ++s.a)
{
std::cout << s.a << " " << s.b << std::endl;
}
发布于 2010-04-22 08:12:28
不可能,但您可以这样做:
float f;
int i;
for (i = 0,f = 0.0; i < 5; i++)
{
//...
}
或者,使用额外的括号明确限制f
和i
的范围:
{
float f;
int i;
for (i = 0,f = 0.0; i < 5; i++)
{
//...
}
}
发布于 2010-04-22 08:13:49
你不能在初始化时声明多个类型,但是你可以给多个类型赋值,例如。
{
int i;
char x;
for(i = 0, x = 'p'; ...){
...
}
}
只需在自己的作用域中声明它们即可。
https://stackoverflow.com/questions/2687392
复制相似问题