goto: | 函数调用: | |
作用域 | label在函数内定义,所以函数内 | |
跳转操作 | 无条件 | 调用时先保存现场,复制实际参数,然后才是跳转 |
生存期 | 由于不是左值,它没有生存期,仅在编译期有意义. | |
程序员对当前代码行断行 | 程序对代码进行断行 |
例子:
#include <iostream.h> void main() { int i=1,s=0; re: s=s+i; if (i<100) { i=i+1; goto re; } cout<<s<<endl; }
相当于利用if和goto制作了一个循环,不建议使用goto关键字,因为他会让程序的结构变得很乱.一个遍布goto语句的程序会让让人很难抓住重心,不便于对程序的理解和维护。