c语言goto为什么最好不要用_C/C++编程笔记:C语言的 goto 语句,为什么老师反复强调不能用?...

4112abf559c67319ac2da9a9e4f021cb.png

C语言中相对比较冷门的知识关键字goto!

goto关键字基础知识

关键字goto表示无条件跳转的意思,类似汇编中的jump指令,在C语言中的使用格式是:goto label,表示跳转到label的位置,并且我们的label一般都写在语句的开头,写成label:的形式。如下面程序案例:

beff1787889daf0f795fa9677d26234b.png

使用注意点:

goto label;后面有分号。

goto只能在函数内部无条件跳转,不能从一个函数跳转到另外一个函数。

label:的标识在使用goto语句的前后均可,不遵循先定义后使用。

label的作用域在函数内部,不同函数之间可以定义相同的label。

goto关键字的争议

对于goto的使用C语言界算是争议不断,并且大部分大学C语言老师在讲到到goto这关键字的时候一般都会叫大家慎用goto关键字。既然goto语句C语言标准中定义了,有句话说得好,"存在即合理"。大家不滥用即可。goto关键字非常的灵活,其实goto本身的功能是非常简单的,就是一个跳转到所定义的标签label位置,灵活的地,例如下代码:

a33b92c5d8c466e24685f02740b6ef7b.png

尤其是嵌套层数更多的情况下,使用goto做为跳转更为简单,不信你看:

所以goto语句还是一个非常有潜力的关键字,对于设计巧妙高效的算法会非常有用!所以个人觉得只要对goto语句的使用加以管束为我们开发服务,这未尝不是一件好事。

73fec2535199f8d7fa2f9c502de5dc40.png

Linux中的goto

读过Linux相关代码的小伙伴会发现goto语句的使用无处不在,这里我复制部分代码来欣赏一下,更多的妙用大家可以自行阅读Linux内核源码。

24157c6cccc7e6006562c98db0cf6c2b.png

goto不能释放内存,但是利用goto语句可以使程序严谨,你仔细看看上面的例子,用了goto,不论程序走什么分支,分配了的内存都得到了释放。如果直接return,那么前面分配的空间就在没释放就退出程序了。

尾言

存在即是合理,慎用不是禁用!

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

C语言C++编程学习:

点击领取C/C++编程学习资料​jq.qq.com

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

C语言编程学习软件

5babd9ab6eb9567fe91c88487d4df963.png

C语言学习视频

9c42c90039dd364b66aafb745457e3b7.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值