forサイクルの奇妙な振る舞いに気づきました...
ケース1:
i変数の内部初期化をしましょう
for ( int i=10; i <=10; i++)
{
std::cout << i;
}
return 0;
出力:
10
ケース2:
ここで、サイクル外でiを初期化します
int i = 10;
for ( ; i <=10; i++)
{
std::cout << i;
}
return 0;
出力:
Nothing will be print
ケース3:
iに関係のない変数の初期化:
int i = 10;
for ( int k = 0 ; i <=10; i++)
{
std::cout << i;
}
return 0;
出力:
10
質問
サイクル条件の結果を、変数iを初期化する場所にどのように依存させることができますか?
更新された結果
deguggerを使用してコードをトレースしたところ、ケース2ではVS2010が実際にサイクルを飛び越えました。ただしg++は正常に機能します。たぶんコンパイラのバグ?
Fianalの結果 再起動後、正しく機能します。天と地の間の何か。役に立たない質問でごめんなさい…。