• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

goto语句在C语言中有什么意义?

代码海洋 2019-10-19 浏览量:1948
goto语句在C语言中有什么意义?都说要避免使用,但是C语言既然有这个语句,到底有和作用?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:5
  • goto是无条件跳转,需要配合标签来使用,比如

    #include "stdio.h"
    main(){ int a=0; loop: a=a+1; if(a>9) goto m_exit; // 这里判断符合条件就跳转
    if(a<0) goto m_error; // 虽然这个其实不会执行到,但可以定义
     goto loop; //通过goto语句来实现循环 m_exit: printf("a=%d\n"a);
    m_Errout:;
     }

    m_error:
    // 错误处理过程
    printf("Err!");
    goto m_Errout;//出错处理后用goto跳回主进程方便退出

    从上面的程序可以看见goto的问题,就是随意性太强,比如上面如果goto m_error 后 没有 goto m_Errout则程序就跑飞,不可控啦。



  • 这个是c语言最实用的跳转语句,编程时方便语句跳转,但是一般情况尽量少用,因为这样会导致程序结构比较凌乱

  • 其实没有说的那么夸张,比如在循环语句中,符合某自己设置的条件后用此跳出去,也挺好用的

  • goto语句,在C中又被称为无条件转移语句,说是无条件,其实还是有条件的,跳转范围还是有限制的,允许把控制无条件转移到同一函数内的被标记的语句。虽然都说在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改,但个人觉得,在一些控制流程较为简单的情景下,还是可以应用的,但是要注意goto语句使用一个注意事项——返回的问题,goto语句是不带返回,需在goto语句分支最后添加return语句或goto 语句易造成死循环,且goto语句中不能使用break和continue关键词,这也就是造成控制流难以控制的原因。

  • goto是直接跳到某个程序标签处,说避免使用是怕程序跑乱了,因为写程序的过程是漫长的,很可能会前后的程序有不连贯或者出现矛盾的地方,因为这个语句很强大,不管不顾的执行,一个不注意,程序就飞了,飞了之后编译的时候还不报错

相关问题

问题达人换一批

goto语句在C语言中有什么意义?