请问如下代码:for(int i = 1;i <= 5;i++){
i = i;
}
其中定义的i属于块作用域吗?i的作用域是?为啥我在某些编译器能过,有些就不能过呢?求教大神
业精于勤,荒于嬉;行成于思,毁于随。
這個語法並不是標準語法,並不能保證所有編譯器都能編譯這句話,但是如果能編譯通過的話,i屬於塊作用域的。
應該是編譯器問題,vs2010可能用的是c90標準,c90是不允許在for中直接宣告int i=0,必須在程式最開始先宣告int i。 c99支援這樣寫for,如果編譯不過可能是這個問題。
gcc編譯器中c語言必須先定義聲明,才能調用,mingw編譯器可以在程式碼中間任意位置聲明變數
非標準語法,編譯器不一樣,結果不統一,但是吧,這個問題沒有什麼意義吧,循環體裡修改循環變量,不合程式規範哪
這個語法並不是標準語法,並不能保證所有編譯器都能編譯這句話,但是如果能編譯通過的話,i屬於塊作用域的。
應該是編譯器問題,vs2010可能用的是c90標準,c90是不允許在for中直接宣告int i=0,必須在程式最開始先宣告int i。 c99支援這樣寫for,如果編譯不過可能是這個問題。
gcc編譯器中c語言必須先定義聲明,才能調用,mingw編譯器可以在程式碼中間任意位置聲明變數
非標準語法,編譯器不一樣,結果不統一,但是吧,這個問題沒有什麼意義吧,循環體裡修改循環變量,不合程式規範哪