如何在C ++函数中正确使用指针?

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)

Som*_*ken 8

您正在递增指针本身的副本,而不是指针指向的副本。您可能的意思是:

(*foo)++;
Run Code Online (Sandbox Code Playgroud)

但这仍然无法解决无限循环的问题,因为您没有阻止它的方法。


Pau*_*ger 5

您的问题是您要增加指针,而不是指向数据。

更换

foo++
Run Code Online (Sandbox Code Playgroud)

(*foo)++
Run Code Online (Sandbox Code Playgroud)

增加指向的值。