C++中goto

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:11:34
#include<iostream>
void main()
{
int *p,*q;
int a=59,b=20;
p=&a,q=&b;
a:std::cout<<*p
<<std::endl
<<a
<<*q
<<b
<<std::endl;
int &c=a,&d=b;
goto a;

}
请问这段代码为什么会进入了一个死循环,把goto a;去掉后就正常了。请问这个goto出了什么问题?

goto 是无条件跳转
这里就是运行
a:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
goto a;
会反复执行这两句,所以。。。

少一个限制打小的条件。删除 go to它就不循环了。只执行一次。不删就是个死循环。

goto 没有出问题,你中间没有出现return语句,当然是死循环啦

无循环结束条件,那不就永远循环下去?