如何解決無法有多個返回值的問題

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)--則必須有括號
}


通過這種方法,我們實際上是改對應地址的值,所以並不像值傳遞那樣返回一個值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章