我有一个函数接受两个指针参数。假设这是
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()
中,a
和b
已经是指针,因此正确的代码应该如下所示:
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/