Cgoto语句与标号.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C goto语句与标号 C语言提供了可随意滥用的goto语句以及标记跳转位置的标号。从理论上讲,goto语 句是没有必要的,实践中不使用goto语句也可以很容易地写出代码。至此,本书中还没有使 用goto语句。 但是,在某些场合下goto语句还是用得着的。最常见的用法是终止程序在某些深度嵌套 的结构中的处理过程,例如一次跳出两层或多层循环。这种情况下使用break语句是不能达 到目的的,它只能从最内层循环退出到上一级的循环。下面是使用goto语句的一个例子: for ( ... ) for ( ... ) { ... if (disaster) goto error; } ... error: /* clean up the mess */ 在该例子中,如果错误处理代码很重要,并且错误可能出现在多个地方,使用goto语句将会 比较方便。 标号的命名同变量命名的形式相同,标号的后面要紧跟一个冒号。标号可以位于对应的 goto语句所在函数的任何语句的前面。标号的作用域是整个函数。 我们来看另外一个例子。考虑判定两个数组a 与b 中是否具有相同元素的问题。一种可 能的解决方法是: for (i = 0; i n; i++) for (j = 0; j m; j++) if (a[i] == b[j]) goto found; /* didnt find any common element */ ... found: /* got one: a[i] == b[j] */ ... 所有使用了goto语句的程序代码都能改写成不带goto语句的程序,但可能会增加一些 额外的重复测试或变量。例如,可将上面判定是否具有相同数组元素的程序段改写成下列形 式: found = 0; for (i = 0; i n !found; i++) for (j = 0; j m !found; j++) if (a[i] == b[j]) found = 1; if (found) /* got one: a[i-1] == b[j-1] */ ... else /* didnt find any common element */ ... 大多数情况下,使用goto语句的程序段比不使用goto语句的程序段要难以理解和维护, 少数情况除外,比如我们前面所举的几个例子。尽管该问题并不太严重,但我们还是建议尽 可能少地使用goto语句。

文档评论(0)

zefm2pj7 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档