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

标签 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

最佳答案

代替:

test2Function(&a);

做:
test2Function(a);

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

关于c - 我如何将一个函数内的int指针传递给另一个函数,并在那里进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54505929/

相关文章:

sql - 将参数从存储过程传递到函数(在存储过程中)

linux - BASH:定义变量中的变量?

c++ - 无法将指针添加到类指针 vector 数组

c - 如何释放指向指针的指针,以便释放其中的所有元素?

c - 如何在标准 C 中创建一个新的 char*

c - 如何使用scanf函数打印字符串的第n项?

c - 无法在 Mac OS X 10.8.2 上编译 Gammu

ios - xCode 项目未在 macOS Catalina 10.15.5 上找到 c++ 标准库

javascript - 带有 jQ​​uery 的脚本中出现“函数未定义”错误

使用链表的 C++ 堆栈