假设我在递归调用中使用goto语句,该调用重定向到我的main函数,堆栈内存中的信息会发生什么? 假设它是这样的,
void recurse(int n){
if(n==0) goto p;
....
}
int main(){
recurse(100);
p:;
}
编辑:正如答案中所指出的,goto语句不能完全在函数范围之外使用,因此怀疑的主要原因是错误的。
谢谢你的帮助。
答案 0 :(得分:2)
你不能,因为goto
只能转到同一功能的标签。
C ++ 11 6.6.4
goto
语句
goto
语句无条件地将控制权转移到标识符标记的语句。标识符应为位于当前函数中的标签(6.1)。