techmagician 发表于 2014-6-26 11:25:42

如何使用结构体实现函数返回多个值?

double sum(double a,b,c,d)
{
    double r,im;
    r=a+c;
    im=b+d;
    return r,im;
   
}这是我的想法,但是return只能一个值,如何修改可以让这个函数返回一个结构体包含两个数?刚开始学习c,指针还没学,能不用就最好啦,新手多包含。。。。。

oggplay 发表于 2014-6-26 14:10:50

返回结构体指针

vvqboy 发表于 2014-6-26 16:48:31

定义一个结构体,结构体内包含你要返回的两个double类型的成员。
在sum函数中malloc一段内存空间保存此结构体,最后返回结构体指针

qq893161525 发表于 2014-6-26 17:06:10

学习啦啊湿答答

仰望天上的光 发表于 2014-6-26 18:54:48

#include <stdio.h>

typedef struct Complex{
        double r;
        double im;
} Complex;

Complex sum( Complex a, Complex b );

int main(void) {
        Complex x;
        Complex y;
        x.r=1;
        x.im=2;
        y.r=3;
        y.im=4;
        printf("(1+2i)+(3+4i)=(%f,%fi)\n",sum(x,y).r, sum(x,y).im);
}

Complex sum( Complex a, Complex b ) {
        Complex result;
        result.r = a.r+b.r;
        result.im = a.im+b.im;
        return result;
}
页: [1]
查看完整版本: 如何使用结构体实现函数返回多个值?