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)--則必須有括號 }
通過這種方法,我們實際上是改對應地址的值,所以並不像值傳遞那樣返回一個值。