C语言32个关键字_goto_goto/16-程序员宅基地

技术标签: C语言的基础知识  

C语言32个关键字中,强烈不推荐goto使用。


C语言中,关于goto的论战是比较少的,一般90%的人都同意能不用goto的地方,就不要用goto。

虽然goto语句在linux代码中出现很多次,但是我个人觉得那都是当年使用汇编造成的后果,现在基本都没怎么用goto了。


goto语句也称为无条件转移语句,其一般格式如下: 

goto 语句标号; 

其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。

goto地跳转到指定标号位置,再说一遍,goto地跳转到指定标号位置,执行完成后,按照顺序继续执行goto语句之后的汇编代码。

所以goto语句和标号之间的程序会被跳过,不执行,所以理论上C语言的goto和标号不会间隔太远。

一般来说,必须使用场景不多,一般用于多重循环(这个本身就不推荐)下的直接跳转。

从最内侧循环直接跳到外面的循环,这确实会使程序清晰简洁。

不过这里原则还是要声明一下:能不用goto语句的地方就不用goto,除非你用别的方式实现确实会造成程序复杂度的增加。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jonah_king/article/details/76208811

智能推荐

Unity3D - 怎么获取相机的屏幕截图-程序员宅基地

文章浏览阅读1.6w次。/// <summary> /// 获取相机的屏幕截图 /// </summary> /// <param name="camera"></param> /// <param name="width"></param> /// <param name="height"></param> /// <...

Unity3D自学笔记——架构应用(五)Loading场景及持久化场景_unity 持久场景-程序员宅基地

文章浏览阅读1.5k次。Loading场景及持久化场景_unity 持久场景

mybatis foreach遍历问题:Error evaluating expression 'XXX'. Return value ('xxxx') was not iterable._mybatis foreach使用出现返回值不可迭代-程序员宅基地

文章浏览阅读7.3k次。mybatis foreach多次遍历问题:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'payMethod'. Return value ({payMethodNa..._mybatis foreach使用出现返回值不可迭代

java 整型时间转换为字符串_JAVA的整型与字符串相互转换-程序员宅基地

文章浏览阅读187次。1如何将字串 String 转换成整数 int?A. 有两个方法:1). int i = Integer.parseInt([String]); 或i = Integer.parseInt([String],[int radix]);2). int i = Integer.valueOf(my_str).intValue();注: 字串转成 Double, Float, Long 的方法大同小异...._java 整数转时间字串

记一次ANR文件的导出_adb命令导出高版本的anr文件-程序员宅基地

文章浏览阅读9.7k次,点赞9次,收藏32次。文章目录1.老版Android系统 anr的导出2.高版本系统 导出3.ANR的缘由1.老版Android系统 anr的导出在项目目录下或app下运行命令: adb pull data/anr/traces.txt测试了华为p7(Android 5.1.1)和荣耀v10(Android 9),发现都能正常导出。但是遇到华为mate10、mate10 pro 一直都导出失败。adb: e..._adb命令导出高版本的anr文件

Oracle RAC启动及关闭步骤-程序员宅基地

文章浏览阅读757次。Oracle RAC的关闭及启动,需要严格按照步骤来执行,以下就以一套实际的系统为例,来介绍RAC的关闭及启动过程:环境说明主机名实例名监听端口字符集db-node1orcl11521ZHS16GBKdb-node2orcl21521ZHS16GBK关闭顺序:关闭数据库(实例)->..._ora...c2.lsnr 启动

随便推点

percona mysql 主从_percona主从配置-程序员宅基地

文章浏览阅读308次。Percona 为MySQL数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。--来自百度百科安装Percona一.安装Percona前的准备工作1.安装Percona的yum源yuminstallhttp://www.percona.c..._percona replication

SQL实现新行插入,旧行更新/判断重复数据则不插入/insert ignore、insert和replace的使用_数据库insert 相同字段则-程序员宅基地

文章浏览阅读2.9k次。mysql中如何判断指定字段的重复数据则不插入?以下是几种具体方法。方法一:sql拼接进行解决,复杂麻烦。insert into 表名(待插入字段1,待插入字段2,…,待插入字段n)select‘张三’,‘1’,…,‘袜子’from 表名 awhere not exists(select 1 from 表名 b where b.判断条件字段1=‘张三’ and b.判断条件字段2=‘..._数据库insert 相同字段则

P3381 [模板] 最小费用最大流-程序员宅基地

文章浏览阅读41次。EK + dijkstra (2246ms) 开氧气(586ms)dijkstra的势 可以处理负权https://www.luogu.org/blog/28007/solution-p3381#include <bits/stdc++.h>using namespace std;const int INF = 1e9;int n, ...

相交链表(双指针实现)_链表相交是指针相同吗-程序员宅基地

文章浏览阅读342次。题目编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表,在节点 c1 开始相交:示例 :输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,_链表相交是指针相同吗

关于有效闭包和无效闭包以及副作用_闭包 return 无效-程序员宅基地

文章浏览阅读159次。有效闭包和无效闭包以及闭包的副作用_闭包 return 无效

2020王道课后习题P18,综合应用题2:将顺序表L中所有的元素逆置,空间复杂度为O(1)_一维数组的逆置算法,可以达到最好的空间复杂度-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏5次。继续更新:2020王道课后习题P18,综合应用题2:将顺序表L中所有的元素逆置,空间复杂度为O(1)。分析:空间复杂度为O(1)说明算法原地工作,所需要的辅助空间为常量,本体算法实现只需要借助一个额外辅助空间,所以符合要求。还是那句话,话休繁琐,代码如下://将顺序表L中所有元素逆置,要求空间复杂度为O(1)# include <stdio.h>#include &..._一维数组的逆置算法,可以达到最好的空间复杂度