在for迴圈外宣告變數i,然後在for迴圈的括號中不是花括號初始化i

2021-04-28 17:34:14 字數 795 閱讀 4839

1樓:匿名使用者

你的意copy思是這樣麼

int i;

for(i=10;i<=20;i++)

printf("%d\n",i);

如果是這樣,那麼這個i的值就是for迴圈結束後的i 的值,上面的**就是i=20。這個並不會被釋

放,因為你是在上方宣告的,相當於是全域性變數,並不是for迴圈中的區域性變數,不會被釋放

如果是for(int i=10;i<20;i++)printf("%d\n",i);

這時候程式就會報錯了,因為i相當於for迴圈的區域性變數,迴圈結束了就被釋放了

2樓:匿名使用者

int i;

for (i = 0 ; i < 10; i++)int j = 2;

如上例子,在迴圈外宣告的i,在迴圈裡面做的操作,包括初始化、賦值等,都專會改變i的值;

迴圈體內部定義的屬j,在迴圈結束時就釋放了,所以在後面還可以定義int j=2,而不會報錯

3樓:錐丈芳衙

這是由於vc++和標準不一致造成的,我們來考察程式中那個for語句中的i的作用域,按照標內準,在for的初始化部分宣告的容變數作用域應該在for中,而vc++把這個變數的作用域擴充套件到for所在的層次,就是說在for之後也是可以使用的,那麼按照去掉大括號的程式,i的作用域是從宣告之處到switch的大括號結束。而default標籤跳過了i的宣告語句卻在i的作用域之中,這顯然是有問題的。之所以加上大括號是正確的,是因為大括號改變了i的作用域按照標準,這段**的錯誤是main函式的型別是int,其他沒錯。

i 在for迴圈裡是怎麼實現的

如果說int i 0 int j i 與int j i 那顯然是有你理解的區別 也就是字首和字尾自增的區別在於運算子返回值,而運算之後的變數值都是原先的變數值 1這也是毫無疑問的。所以在你寫的for迴圈裡,我們因為沒有用到自增運算子的返回值,故沒有區別 不過如果寫成for i 0 i 5 和 for...

水在自然界中是怎樣迴圈的

水迴圈分為海陸間迴圈 大迴圈 以及陸地內迴圈和海上內迴圈 小迴圈 從海洋蒸發出來的水蒸氣,被氣流帶到陸地上空,凝結為雨 雪 雹等落到地面,一部分被蒸發返回大氣,其餘部分成為地面徑流或地下徑流等,最終迴歸海洋。這種海洋和陸地之間水的往復運動過程,稱為水的大迴圈。僅在區域性地區 陸地或海洋 進行的水迴圈...

在js中怎麼結束當前for迴圈,js裡的for迴圈問題,下面這個for迴圈是什麼時候停止的

1 跳出迴圈用break語句就可以實現。開啟hbuilder軟體,建立一個點選按鈕標籤和用於顯示迴圈內容的div標籤 2 在scrip標籤裡,建立點選觸發迴圈的方法,迴圈裡當迴圈到3的時候,用break語句跳出迴圈體,在button標籤上新增點選myfunction 函式 3 按下crtl s儲存後...