0

以下のコードを実行するとエラーが発生しますが、ループの外側で少なくとも 1 つの変数を宣言すると、コードは正常に動作します。ループ自体で両方の変数を宣言できないのはなぜですか?

エラー:

#include<iostream>
#include<conio.h>
using namespace std ;

int main()
{
for(int j=0,int i=0;i<4&&j<2;i++,j++)
{
    cout<<"Hello"<<endl ;
}
getch() ;
return 0 ;
} 

正常に動作します:

#include<iostream>
#include<conio.h>
using namespace std ;

int main()
{
int i ;
for(int j=0,i=0;i<4&&j<2;i++,j++)
{
    cout<<"Hello"<<endl ;
}
getch() ;
return 0 ;
} 
4

3 に答える 3

8

できますが、1 つの宣言で 2 つの変数を宣言するための表記法は次のようになります。

int j=0, i=0;

秒なしint

(これは、実際には 2 番目のバージョンが行っていることです。すでに宣言されている を割り当てていると思うかもしれませんがi、実際には、スコープがfor-loop である新しいものを宣言しています。)

于 2013-10-06T06:35:20.710 に答える
0

指定された回答は、同じタイプの複数の変数の作成のみを処理することに注意してください。

何らかの奇妙な理由で、複数のタイプを実行する必要がある場合、これは有効です (ひどいですが):

for(struct {int a; double b} loop = {0, 1.5}; loop.a < loop.b; loop.a++)
{
    // Awful hacks
}
于 2014-08-26T22:13:02.620 に答える