发布网友 发布时间:2022-05-07 14:31
共1个回答
热心网友 时间:2022-06-30 07:58
goto语句不能跨越变量的定义向后跳转:
//......
goto end;
int ix=10;
end:
ix=42;//会出现ix未定义的情形
而向前跳过已经执行的变量定义语句是合法的。因为向前跳回到一个变量定义之前,系统在撤销这个变量,然后重新创建它:
//..........
begin:
int sz=get_size();
if(sz<=0) goto begin;
执行goto语句时,首先撤销变量sz,然后程序的控制流程跳转到带begin:标号的语句继续执行,再次重新创建和初始化变量sz。