max*_*xxy 1 c++ pointers loops for-loop pre-increment
我试图摆脱C ++中的指针和地址的束缚,并且在更改参数的函数中遇到麻烦。
下面的代码Loop run #1.在无限循环中编写,而不是递增value foo。
我的问题是:这里的代码有什么问题?
#include <iostream>
void Statement(int *foo) {
std::cout << "Loop run #" << *foo << ". ";
foo++;
}
int main() {
int foo = 1;
for (;;) {
Statement(&foo);
}
}
Run Code Online (Sandbox Code Playgroud)
您正在递增指针本身的副本,而不是指针指向的副本。您可能的意思是:
(*foo)++;
Run Code Online (Sandbox Code Playgroud)
但这仍然无法解决无限循环的问题,因为您没有阻止它的方法。
您的问题是您要增加指针,而不是指向数据。
更换
foo++
Run Code Online (Sandbox Code Playgroud)
与
(*foo)++
Run Code Online (Sandbox Code Playgroud)
增加指向的值。
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |