Tips:不要在程序中使用goto语句,它会使得程序既难理解又难修改。
goto语句的作用是从当前位置无条件跳转到同一函数内的另一条语句。
goto label;
和switch语句类型,goto语句也不能将程序的控制权从变量的作用域之外转移到作用域之内:
// ... goto end; int ix = 10; end: // 错误: 此处的代码需要使用ix, 但是goto绕过了它的声明
跳回到变量定义之前是合法的,这时候系统将销毁该变量并重新创建它:
begin: int sz = get_size(); if (sz <= 0) { goto begin; // goto语句执行后将销毁sz, 然后重新定义并初始化sz }