指针如何传入函数参数?有示例程序吗?

小星 编程 65

回复

共1条回复 我来回复
  • 编程小能手
    编程小能手
    来自于宇宙以外的编程小能手~
    评论

    首先,在调用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);
    }
    


    当您到达this stage时,请使用它。

    foo()内部,您只是将本地堆栈上的p更改为指向j,而不影响pimain,因为p已按值传递(复制)。

    如果要从函数内部更改i的值,则需要通过以下方式进行更改:

    void foo(int *p) {
        *p = 2;
        printf("%d ", *p);
    }
    

    2025-04-13 15:07:06 1条评论