本文共 952 字,大约阅读时间需要 3 分钟。
goto无条件跳转语句,建议尽量少的使用,不符合结构化程序的设计思想。 要使用goto语句,必须在希望跳转的语句前面加上语句标签。语句标签就是标识符后面加冒号。包含这些标签的goto语句可以出现在同一个函数中的任何位置。 例1: #include int main(void) { goto l1; l1:printf("%d",5); return 0; }
p=(struct s *)malloc(...);//被goto跳过,没有初始化 但是,当需要跳出多层嵌套的循环时,使用goto语句可能会非常合适。由于break语句只影响包围它的最内层循环,要想立即从深层嵌套的循环中推出只有一个办法,就是使用goto语句,如下例所示: 想在这种情况下避免使用goto语句有两种方案。第一个方案是当你希望退出所有循环时设置一个状态标志,但这个标志在每个循环中都必须进行测试: enum { EXIT, OK } status;
while(status == OK && condition1) while( status == OK && condition2) while( status == OK && condition3) 这个技巧能够实现退出所有循环的目的,但情况被弄得非常复杂。另一种方案是把所有的循环都放到一个单独的函数里面,当灾难降临到最内层的循环时,你可以使用return语句离开这个函数。 转载地址:http://qursi.baihongyu.com/