网站首页 | 范文大全 | 常用申请书 | 党团范文 | 讲话发言 | 作文大全 | 报告叙述 | 合同范文 | 党建教育 | 入党材料 | 心得体会 |
三晋范文网
  • 辞职报告
  • 实习报告
  • 述职报告
  • 调查报告
  • 调研报告
  • 社会实践报告
  • 工作报告
  • 自查报告
  • 您的位置:三晋范文网 > 报告叙述 > 调研报告 > 正文 2019-10-17 07:26:07

    肖雪黄金佳【C/C++中的goto语句黄金佳肖雪背景】

    摘要:goto 语句 无条件转移控制流。 当使用其他语句不可能将控制转移到所需位置时使用。 语法 属性(可选) goto 标号 ; C++解释 goto 语句将控制转移到标号所指定的位置。goto 语句必须与它所

    goto 语句

    无条件转移控制流。

    当使用其他语句不可能将控制转移到所需位置时使用。

    C/C++中的goto语句

    语法

    属性(可选)goto标号;

    C++解释

    goto 语句将控制转移到标号所指定的位置。goto 语句必须与它所用的标号处于相同的函数中,它出现于标号的前后均可。

    若控制的转移退出了任何自动变量的作用域(例如通过回跳到这种变量声明之前的位置,或向前跳出作为变量作用域的复合语句),苹果禁播片段,则为所有退出作用域的变量以其构造顺序的逆序调用析构函数。

    goto 不能将控制转移到 try 块或 catch 子句之内,但能将控制转移离开 try 块或 catch 子句(遵循上述有关作用域中的自动变量的规则)

    若控制被转移进入了任何自动变量的作用域(例如通过向前跳过声明语句),淘娱淘乐影视,绿灯侠qvod,则程序非良构(不能编译),冰雪奇侠,除非进入作用域的所有变量拥有

    标量类型,且声明不带初始化器

    拥有平凡默认构造函数和析构函数的类类型,且声明不带初始化器

    上述之一的 cv 限定版本

    上述之一的数组

    (注意:相同规则适用于控制转移的所有形式)

    注意

    在 C 编程语言中,goto 语句的限制较少,并且能进入除变长数组或可变修改指针之外的任何变量的作用域。

    C解释

    goto 语句导致无条件跳转(控制的转译)到前附具名标号(必须与 goto 语句出现于同一函数中)的语句,除非此跳转会进入变长度数组或另一可变修改类型的作用域 (C99 起)。

    标号是一个后随冒号( : )和一条语句的的标识符。标号是仅有的拥有函数作用域的标识符:能在其所出现于的函数中的任何位置使用它们(在 goto 语句中)。任何语句前可以有多个标号。

    goto lab1; // OK :进入常规变量的作用域 int n = 5;lab1:; // 注意未初始化 n ,如同以 int n; 声明// goto lab2; // 错误:进入二个 VM 类型的作用域 double a[n]; // VLA int (*p)[n]; // VM 指针lab2:

    若 goto 离开 VLA 的作用域,天碱吧,则 VLA 会被解分配(而且可能会被再分配,若再度执行其初始化):

    { int n = 1;label:; int a[n]; // 重分配 10 次,每次拥有不同的大小 if (n++ < 10) goto label; // 离开 VM 的作用域}示例#include <stdio.hint main(void){ // goto 可用于简单地离开多层循环 for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { printf("(%d;%d)\n",x,y); if (x + y = 3) goto endloop; } }endloop:;}

    输出:

    (0;0)(0;1)(0;2)(1;0)(1;1)(1;2)

    肖雪黄金佳【C/C++中的goto语句黄金佳肖雪背景】》由(三晋范文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2023 三晋范文网 All Rights Reserved. 备案号:京ICP备14001712号-1