猿问

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

c++primer中goto语句一章 begin: ......... int sz=get_size(); if(sz<=0){goto begin;} 讲到向前跳转时,要撤销变量sz,请问如何撤销。

偶然的你
浏览 293回答 2
2回答

一只甜甜圈

撤销的工作不是你完成的,而是系统自动撤销的。而且你的说法有误。向后跳跃(即往上跳),向前跳跃(即往下跳)向前跳跃会可能跳过变量定义,而造成使用错误。向后跳跃则不会出现这种问题,原因就是其中提到的会撤销变量,并在遇到其定义时重新定义它。// 写一个例子你参考下:// 程序是死循环,在调试模式下自己一步步运行分析,注释已说明结果#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;}
随时随地看视频慕课网APP
我要回答