c语言只能有一个返回值,想要获取多个返回值,又不想或不能把他们放到一个数组,不想用全局变量,我们可以使用引用传递(pass by reference)的方法。
如,我们有变量a,b,用一个函数同时处理他们,然后返回a和b,我们可以这样:
int a = 5; int b = 10; changeAandB(&a,&b); printf("a is %d, b is %d.\n", a, b);
方法changeAandB:
void changeAandB (int *p1, int *p2) { int a = *p1; int b = *p2; *p1 = ++a; *p2 = --b; *p2 = --*p2; //此处不用加括号,但是若是 (*p2)--则必须有括号 }
通过这种方法,我们实际上是改对应地址的值,所以并不像值传递那样返回一个值。
时间: 2024-10-23 11:58:52