我如何将一个函数内的int指针传递给另一个函数并在那里进行操作?

时间:2019-02-03 18:09:55

标签: c function pointers

#include <stdio.h>

void testFunction(int *a){
    printf("In a should be 5: %d", *a);
    *a = 0;
    printf("In a should be 0: %d", *a);
    test2Function(&a);
}

void test2Function(int *a){
    printf("In F2 a should be 0: %d", *a);
    *a = 2;
    printf("In F2 a should be 2: %d", *a);
}

int main(){

    int a = 5;
    testFunction(&a);
    printf("In main() a should be 2: %d", a);


    return 0;
}

如何将指针从给定的指针发送到一个函数内的另一个函数? 这样上面代码中的语句都是正确的

当前输出为:

In a should be 5: 5
In a should be 0: 0
In F2 a should be 0: 6422316
In F2 a should be 2: 2
In main() a should be 2: 0

1 个答案:

答案 0 :(得分:7)

代替:

test2Function(&a);

要做:

test2Function(a);

因为您只想复制已有的指针,而不要获取指针本身的地址。