司汤达代表作:关于while与for的差别问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 21:52:34
因为
for(int i=0;;){}for循环完了之后,i所占的内存自动释放
所以
表达式for(表达式1;表达式2;表达式3){循环体}

表达式1;
while(表达式2)
{
循环体
表达式3;
}
是有差别的,对不对,请问高手们,还有什么其他差别吗?谢谢各位了!
在第二种表达即while的表达中,表达式1,也即int i=1;是在
while之外的,while结束后,它占用的内存是不会释放的;

你所说的差异只存在于C++中,C语言不存在,因为C++可以在任何位置定义数据。其它的就没什么差异了,这两个的功能可以互换。
补充:在C++中也可以等效
for(int i=0;i<10;i++);
跟下面等效:
while(1){
static int i=0;
if(++i>=10)break;
}
i的作用域都只是循环体。
这种情况下用for更容易让人接受

其实没有什么差别,你说的差别来自于你对 int 的定义位置,而不是 for 和 while 的差别。

for 和 while 的功能完全可以互换,只不过在逻辑上各有各的偏向而已。

我不认为他们有差别,只要不是静存储类型,那么他们占有的内存在循环结束之后都会释放,无所谓差别啊