2016-04-14 1 views
-4

2つの値を関数に送り、配列などのデータ構造を使わずに別々に返すことは可能ですか?複数の値を送る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

いいえ、任意のデータ構造を使用せずに、複数の値を返すために、そのことはできません。このような

。しかし、任意の数の引数を渡すことができます。