如何在 C 中通过引用传递变量?
How do pass variable pass by reference in C?
我想通过引用传递方法显示 x、y、z 值,该怎么做?
什么是pass by value-result?
void f1(int x, int y, int z){
x = y + z;
y = z + 1;
printf("x: %d y: %d z: %d",x,y,z);
}
int main(int argc, char *argv[]) {
int r = 5;
int t = 10;
int k = 15;
f1(r, t, t + k);
printf(" r : %d t: %d k : %d",r,t,k);
}
感谢任何帮助。
这只是使用间接的情况,在 C 中意味着指针:
// Declare any arguments that are mutated as pointers
void f1(int* x, int* y, int z) {
*x = *y + z;
*y = z + 1;
printf("x: %d y: %d z: %d", *x, *y, z);
}
int main(int argc, char *argv[]) {
int r = 5;
int t = 10;
int k = 15;
f1(&r, &t, t + k);
printf(" r : %d t: %d k : %d",r,t,k);
}
请注意,为了使用指针,您必须有指向的东西。 t + k
不是那些东西。可以说 z
没有作为参数发生变化,所以它可能是一个普通的 int
.
就操作顺序而言,t + k
在突变发生之前被计算并分配为参数。
我想通过引用传递方法显示 x、y、z 值,该怎么做?
什么是pass by value-result?
void f1(int x, int y, int z){ x = y + z; y = z + 1; printf("x: %d y: %d z: %d",x,y,z); } int main(int argc, char *argv[]) { int r = 5; int t = 10; int k = 15; f1(r, t, t + k); printf(" r : %d t: %d k : %d",r,t,k); }
感谢任何帮助。
这只是使用间接的情况,在 C 中意味着指针:
// Declare any arguments that are mutated as pointers
void f1(int* x, int* y, int z) {
*x = *y + z;
*y = z + 1;
printf("x: %d y: %d z: %d", *x, *y, z);
}
int main(int argc, char *argv[]) {
int r = 5;
int t = 10;
int k = 15;
f1(&r, &t, t + k);
printf(" r : %d t: %d k : %d",r,t,k);
}
请注意,为了使用指针,您必须有指向的东西。 t + k
不是那些东西。可以说 z
没有作为参数发生变化,所以它可能是一个普通的 int
.
就操作顺序而言,t + k
在突变发生之前被计算并分配为参数。