【发布时间】:2019-11-10 13:37:27
【问题描述】:
我正在尝试掌握 C++ 中的指针和地址的窍门,但在使用更改参数的函数时遇到了问题。
下面的代码是在无限循环中写入Loop run #1.,而不是递增值foo。
我的问题是:这里的代码有什么问题?
#include <iostream>
void Statement(int *foo) {
std::cout << "Loop run #" << *foo << ". ";
foo++;
}
int main() {
int foo = 1;
for (;;) {
Statement(&foo);
}
}
【问题讨论】:
-
代码在做什么?它应该做什么?
-
你的意思是在函数内部写
(*foo)++;? -
你正在递增一个指针的副本,而不是指向的整数
-
在
c++中,最好通过引用而不是像编写c代码那样通过指针传递。 -
@maxxy 关于您发布的问题。 “这里的代码有什么问题?” 没有明确说明您遇到的问题。始终清楚地解释您对所看到的(也明确指定的)输入和输出的期望。换句话说,发帖minimal reproducible example,这是此处广受好评的问题的最低要求。
标签: c++ loops for-loop pointers pre-increment