3
A
回答
10
第一個聲明循環外的作用域中的變量;循環結束後,變量仍然存在並且可用。第二個聲明變量,使它屬於循環的範圍;在循環之後,變量不再存在,防止該變量被無意地/錯誤地使用。
在C99,C++,Java和其他類似的語言,你會發現大多是第二個語法,因爲它是更安全 - 循環索引所屬的環和不被修改/別處共享。但是,您會在較舊的C代碼中看到很多前者,因爲ANSI C不允許在循環中聲明循環變量。
舉個例子:
int i;
// ... lots of stuff
for (i = 0; i < 5; i++){
printf("%d\n",i); // can access i; prints value of i
}
printf("%d\n",i); // can access i; prints 5
相反:
for (int i = 0; i < 5; i++){
std::cout << i << std::endl; // can access i; prints value of i
}
std::cout << i << std::endl; // compiler error... i not in this scope
+0
答案是非常豐富的。 – Nobody 2010-04-30 10:06:31
2
這將取決於語言,你還沒有:-)
在C指定(和該變量的一些其他),範圍(有效地在這種情況下的持續時間)是不同的。首先,變量存在於循環之後,因爲它在外部聲明。
在後者中,它當循環結束,因爲它的存在是「內部」循環體消失。
+0
感謝您的回答paxdiablo。 – Nobody 2010-04-30 10:07:06
相關問題
- 1. for循環中聲明變量和外部循環之間有什麼區別?
- 2. ES6在循環之前或循環中聲明變量
- 3. Ruby:for循環和每個循環之間有什麼區別?
- 4. 無限循環和循環之間有什麼區別?
- 5. 在foreach循環之外聲明變量
- 6. 用循環聲明變量
- 7. 在AS3中循環或之前聲明變量?
- 8. c循環和外部循環中的變量重新聲明?
- 9. 爲什麼我的Python for循環remove()改變在循環之前聲明的變量?
- 10. 循環和電路有什麼區別
- 11. 循環和迭代有什麼區別?
- 12. VB:在For循環中聲明變量
- 13. 在循環中聲明的變量
- 14. 在Java之前聲明清單循環
- 15. 聲明變量外循環並在循環中使用它
- 16. 什麼聲明將下面的循環變成無限循環?
- 17. 爲什麼在Javascript中包含變量聲明for循環?
- 18. 爲什麼在for循環中「++ i」和「i ++」有什麼區別?
- 19. for循環使用for循環中聲明的變量值?
- 20. for循環中的循環變量聲明樣式
- 21. OpenMP - for循環中的變量聲明
- 22. 循環中的局部變量聲明
- 23. while循環中聲明變量javascript
- 24. for循環中的C++聲明變量
- 25. 聲明2個變量在for()循環
- 26. 變量內部For循環和外部循環之間的區別
- 27. 這個while循環有什麼區別?
- 28. 在聲明for循環變量時,mut&mut會做什麼嗎?
- 29. 對於循環變量聲明
- 30. 通過for循環聲明php變量
它在某種程度上取決於語言。感謝邁克爾 – Quentin 2010-04-30 09:57:03