我有一个函数接受两个指针参数。假设这是

void add(u16 *x, u16 *y)

我还有一个接受三指针参数的函数。
void fact(u16 *a, u16 *b, u16 *c){
    if(*c > 500){
        add(*a,*b); // Is this correct?
    }
}

如果满足fact中的某个条件,我想将参数a和b传递给函数add,但是我想通过引用传递它们,而不是通过值传递。我该怎么做?.a、b、c、x和y都是在调用函数时使用“&x”从“main”向下传递的。
所以我希望所有内容都通过引用传递,以便任何值修改都将返回到main。
非常感谢你!

最佳答案

add(*a,*b);//正确吗?
不,这不对。
假设原型是void add(u16 *x, u16 *y),那么调用函数应该使用匹配的类型调用参数。在fact()中,ab已经是指针,因此正确的代码应该如下所示:

void fact(u16 *a, u16 *b, u16 *c){
    if(*c > 500){
        add(a,b); // this is correct
    }
}

关于c - 使用指针在函数内调用函数-C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40558297/

10-12 04:17