2016-04-14 24 views
-4

是否可以發送兩個值來分別運行並返回而不使用數組結構(如數組)?C中的函數發送多個值

這樣的:

#include<stdio.h> 
int f(int a,int b) 
{ 
    a*=2; 
    b*=2; 

    return ????????? 
} 

int main() 
{ 
    int x=5,y=10,k; 
    k=f(x,y) ????????? 
    printf("%d",k); ???????? 
} 
+0

您可以傳遞變量作爲一個參數的地址,以便在功能放置一些結果出現。 –

+2

可能的重複[如何從C函數返回多個值?](http://stackoverflow.com/questions/2620146/how-do-i-return-multiple-values-from-a-function-in -C) –

回答

0

您不能直接返回多個項目(其中項目可能是包含多個項目的結構)。但是,如果你對指針感到滿意,你可以「通過引用傳遞」。

#include <stdio.h> 
void f(int *a, int *b) 
{ 
    *a *= 2; 
    *b *= 2; 
} 
int main() 
{ 
    int x=5, y=10; 
    f(&x, &y); 
    printf("new x: %d, new y: %d", x, y); 
} 

見這個結果在http://ideone.com/p4Xiqv

0

不,它不可能不使用任何數據結構返回多個值。但是,您可以傳遞任意數量的參數。