首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以在for循环中声明两个不同类型的变量?

是否可以在for循环中声明两个不同类型的变量?
EN

Stack Overflow用户
提问于 2010-04-22 08:07:17
回答 6查看 217.9K关注 0票数 276

是否可以在C++中的for循环的初始化体中声明两个不同类型的变量?

例如:

代码语言:javascript
复制
for(int i=0,j=0 ...

定义两个整数。可以在初始化体中定义intchar吗?如何做到这一点?

EN

回答 6

Stack Overflow用户

发布于 2010-04-22 08:15:42

不-但从技术上讲,有一个变通办法(不是说我真的会使用它,除非迫不得已):

代码语言:javascript
复制
for(struct { int a; char b; } s = { 0, 'a' } ; s.a < 5 ; ++s.a) 
{
    std::cout << s.a << " " << s.b << std::endl;
}
票数 294
EN

Stack Overflow用户

发布于 2010-04-22 08:12:28

不可能,但您可以这样做:

代码语言:javascript
复制
float f;
int i;
for (i = 0,f = 0.0; i < 5; i++)
{
  //...
}

或者,使用额外的括号明确限制fi的范围:

代码语言:javascript
复制
{
    float f; 
    int i;
    for (i = 0,f = 0.0; i < 5; i++)
    {
       //...
    }
}
票数 236
EN

Stack Overflow用户

发布于 2010-04-22 08:13:49

你不能在初始化时声明多个类型,但是你可以给多个类型赋值,例如。

代码语言:javascript
复制
{
   int i;
   char x;
   for(i = 0, x = 'p'; ...){
      ...
   }
}

只需在自己的作用域中声明它们即可。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2687392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档