例如:
void decrement(int counter) {
counter--;
}
int counter = 20;
for (int i = 0; i < counter; i++) {
for (int j = 0; j < counter, j++) {
decrement(counter);
}
}
理想情况下,我希望看到每次运行 for 循环时 counter
var 都会递减,因此它运行的迭代次数少于 20 次。但是 gdb 显示在 decrement()
中 counter
被递减,但是回到 for 循环 counter
实际上保持不变。
最佳答案
是的,这是可能的:
for (int i = 0; i < counter; i++) {
counter--;
}
它在您的示例中不起作用的原因是因为您正在按值传递并修改值的副本。如果您传递一个指向变量的指针而不是仅仅传递值,它将起作用。
关于C - 是否可以从 for 循环中递减 for 循环的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625585/