![]() |
||
Major Member
![]() 加入日期: Sep 2004
文章: 156
|
C語言問題(Switch)
引用:
請問那個for (i=0;i<=stu;++i) 是在執行迴圈前先行+1嗎,在scan之前? |
||||||||
![]() |
![]() |
Advance Member
![]() ![]() 加入日期: Sep 2001
文章: 303
|
引用:
不是... 其實不論++i 或i++ 在for迴圈的syntax中都是一樣的 因為(initial;terminal condition;iterator) 初值在initial決定 檢查terminial condition 正確->迴圈內容 錯誤->離開回圈 如果正確執行回圈內容,iterator才會被執行 因此不論++i 或i++在for是一樣的 但是在其他地方則不同 例如 array[i++]=1 array[++i]=1 則是如你描述的一樣 第一個先取array[i]的address令他為1再將i+=1 第二個則是曲array[i+1]的address令他為1 |
|||
![]() |
![]() |
Senior Member
![]() ![]() ![]() 加入日期: May 2003
文章: 1,149
|
引用:
答案否,因為你scanf輸入的值,後面才送到for迴圈中 和switch有什麼關呢? |
|
![]() |
![]() |
Regular Member
![]() ![]() 加入日期: Sep 2001
文章: 85
|
for (i = 0; i < size; i++){
... ... ... } 跟 i = 0; while (i < size){ ... ... ... i++; } 是一模一樣的...(大部分的compiler會這麼做) 所以答案可以自己想... |
![]() |
![]() |