2016-03-23 7 views
-2

なぜこのようなsmthngを書くことができないのですか?C - whileループ初期化子の演算子

int i, size; 
int *arr; 
... 
for(i = size - 1, while(arr[i] == 0) i--; i >= 0; i--) { ... } 
+0

あなたはたくさんのことを書くことができない同じ理由 - それはです有効なC構文ではありません。 –

+0

短い答え - 言語の文法はそれを許さないので、 'for'ステートメントの制御式は他の*ステートメント*にすることはできません。 *なぜ*文法がそうであるかについては、デニスリッチーに尋ねる必要があります。彼はもはや周囲にいません。 –

+1

言語では*の式のみが許可され、ステートメントは許可されないためです。 –

答えて

0

これは何をしたいのためのソリューションがあるかもしれないC.

中だけで有効な構文ではありません:

int i, size; 
int *arr; 
... 
for(i = size - 1; i >= 0; i--) { 
    if (arr[i] == 0) 
     continue; 
    ... 
} 
関連する問題