c - 如何在循环执行后在循环之前获取变量的值?

标签 c loops

我想知道是否有一种方法可以在执行循环之后、进入循环之前获取整数变量的值。

例如:

#include <stdio.h>
int main(){
  int x;

  x = 1;
  printf("%d\n", x);

  while(x < 2000){
     x++;
    printf("%d\n", x);
  }
  printf("before the loop, X had a value of %d", x);
}

有没有办法得到最终的printf()打印 x 的值其中x进入之前持有while()环形?或者是创建 x 副本的唯一方法在循环之前使用另一个变量?

最佳答案

在抽象上下文中,您通常有两个选择:

  1. “提前思考”方法:预先存储原始值,即在对原始值进行任何修改之前创建一个副本。
  2. “时间倒转”方式:以新值为起点,“还原”所有修改,从而达到原始值。

一般情况下,每种方法都需要权衡。

应用于您的特定简单示例,这两种方法涉及在循环之前存储变量的副本,或“撤消”循环所做的更改(通过使用您对该循环语义的深入了解)。在这种情况下,后者归结为

printf("before the loop, X had a value of %d", x - 1999);

关于c - 如何在循环执行后在循环之前获取变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40452313/

相关文章:

c - 在头文件中定义或自动链接的标准函数?

c - 如何在 C 中顺序解析 gzip 压缩的文本文件而不先完全解压缩

java - 当我在 for 循环中使用 ArrayList 时,如何将对象添加到 ArrayList 中?

java - 有没有办法在 for 循环中链接列表(或 map )?

scala - 关闭 Scala 中的循环变量

c - 无法从 Ubuntu VM 交叉编译 C 程序以兼容 Windows 主机

c - union 嵌套在返回垃圾值的结构中

sql-server - TSQL while 循环

java - 在迭代 hashmap 时执行循环展开

c - 在处理过程中,如何通过这段代码使音量变大?