为了账号安全,请及时绑定邮箱和手机立即绑定

如果想要利用c++撤销变量,请问该怎么操作呢?

如果想要利用c++撤销变量,请问该怎么操作呢?

偶然的你 2021-08-13 15:11:49
c++primer中goto语句一章 begin: ......... int sz=get_size(); if(sz<=0){goto begin;} 讲到向前跳转时,要撤销变量sz,请问如何撤销。
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

撤销的工作不是你完成的,而是系统自动撤销的。

而且你的说法有误。
向后跳跃(即往上跳),向前跳跃(即往下跳)

向前跳跃会可能跳过变量定义,而造成使用错误。
向后跳跃则不会出现这种问题,原因就是其中提到的会撤销变量,并在遇到其定义时重新定义它。

// 写一个例子你参考下:
// 程序是死循环,在调试模式下自己一步步运行分析,注释已说明结果
#include <stdio.h>
int main()
{
label1:
goto begin; // 跳到标签label2时候,y定义被跳过,下面的y+=10会出错
int y = 0;

label2:
int x = 10;
printf("x=%d", x);

x+=10;
y += 10; // 由于跳过定义,使用出错
printf("\ny=%d", y);

// 跳回到label1的时候会撤销x,y(这里y使用出错这里我们不考虑它),
// 再次遇到int x的时候就会重新定义
goto label1;
return 0;
}



查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 292 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信