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

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

 i = i;

}

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

迷茫
迷茫

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

全部回覆(4)
小葫芦

這個語法並不是標準語法,並不能保證所有編譯器都能編譯這句話,但是如果能編譯通過的話,i屬於塊作用域的。

小葫芦

應該是編譯器問題,vs2010可能用的是c90標準,c90是不允許在for中直接宣告int i=0,必須在程式最開始先宣告int i。 c99支援這樣寫for,如果編譯不過可能是這個問題。

小葫芦

gcc編譯器中c語言必須先定義聲明,才能調用,mingw編譯器可以在程式碼中間任意位置聲明變數

小葫芦

非標準語法,編譯器不一樣,結果不統一,但是吧,這個問題沒有什麼意義吧,循環體裡修改循環變量,不合程式規範哪

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板