c++ - 关于C语言块作用域于for循环,本人小白
迷茫
迷茫 2017-04-17 15:26:03
0
4
583

请问如下代码:
for(int i = 1;i <= 5;i++)
{

 i = i;

}

其中定义的i属于块作用域吗?i的作用域是?为啥我在某些编译器能过,有些就不能过呢?求教大神

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(4)
小葫芦

この構文は標準構文ではなく、すべてのコンパイラがこの文をコンパイルできるという保証はありませんが、コンパイルできれば、i はブロック スコープに属します。

いいねを押す +0
小葫芦

これはコンパイラの問題です。VS2010 では c90 標準が使用されているため、for で int i=0 を直接宣言することができません。 C99 はこのような書き込みをサポートしています。コンパイルに失敗した場合は、これが問題である可能性があります。

いいねを押す +0
小葫芦

gcc コンパイラーでは、C 言語はステートメントを呼び出す前にまずステートメントを定義する必要があります。mingw コンパイラーはコードの途中で変数を宣言できます。

いいねを押す +0
小葫芦

非標準の構文、コンパイラが異なり、結果が均一ではありません。ただし、この質問は、ループ本体内のループ変数を変更することはプログラミング標準に違反します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート