Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 指针如何在函数参数中传递?用示例程序?_C++_C - Fatal编程技术网

C++ 指针如何在函数参数中传递?用示例程序?

C++ 指针如何在函数参数中传递?用示例程序?,c++,c,C++,C,我想知道函数参数中指针的流程。请帮助我如何逐行执行下面的操作及其流程 #include <stdio.h> int main() { int i = 97, *p = &i; foo(&i); printf("%d ", *p); } void foo(int *p) { int j = 2; p = &j; printf("%d ", *

我想知道函数参数中指针的流程。请帮助我如何逐行执行下面的操作及其流程

    #include <stdio.h>

    int main() {

        int i = 97, *p = &i;

        foo(&i); printf("%d ", *p);
    }

    void foo(int *p) {
        int j = 2;

        p = &j;
        printf("%d ", *p);
    }

首先,在调用foo之前,应该让编译器看到foo的声明

#include <stdio.h>

void foo(int *p); // <<<<<<<<<< Declare your function first!

int main() {

    int i = 97, *p = &i;

    foo(&i); printf("%d ", *p);
}

void foo(int *p) {
    int j = 2;

    p = &j;
    printf("%d ", *p);
}

程序无法编译。@为什么?我在这里没有看到任何语法错误,调试器是查看它逐行执行和流的完美工具。你编译了吗?…可能会收到警告。。。最好去做一个教程指针函数参数不流动。嗯,这是真的,但没有答案。@Quentin试图改进…@Quentin THX,谢谢你的编辑…我希望结果不是粗鲁的。我有点不安短路同行验证和编辑别人的帖子直接。。。或者我还能建议编辑吗?@Quentin我希望这不会显得太粗鲁。不,不,不!至少在这种情况下,这是绝对可以和赞赏。否则的话,我会退回去的。不客气。。。
void foo(int *p) {
    *p = 2;
    printf("%d ", *p);
}