54黑科技 发表于 2019-11-7 15:20:03

函数需要返回多个值,请问除了指针,还有其他方法吗?

#include <stdio.h>

void swap(int *p1,int *p2);//函数的声明

int main(void)//主函数
{
        int k1 = 6,k2 = 16;
        printf("%d,%d\n",k1,k2);       
        swap(&k1,&k2);
        printf("%d,%d\n",k1,k2);

        return 0;
}

void swap(int *p1,int *p2)//函数的定义
{
        int i;
        i = *p1;
        *p1 = *p2;
        *p2 = i;
}

bin554385863 发表于 2019-11-7 16:44:44

本帖最后由 bin554385863 于 2019-11-7 19:12 编辑

返回结构体或者数组
#include <stdio.h>
typedef struct
{
    int MIN;
    int MAX;
} limitValue;
limitValue func(int m, int n)
{
    limitValue result = {m < n ? m : n, m > n ? m : n};
    return result;
}
int main()
{
    int a = 100, b = 900;
    printf("min = %d,max = %d", func(a, b).MIN, func(a, b).MAX);
    return 0;
}
------------------------------------------------------------------------------------
Microsoft Windows [版本 10.0.18363.418]
(c) 2019 Microsoft Corporation。保留所有权利。

E:\Users\admin\Documents\VScode>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-mzpoo3em.x14 --stdout=Microsoft-MIEngine-Out-rvx2lzal.n2o --stderr=Microsoft-MIEngine-Error-k0rjejv2.e35 --pid=Microsoft-MIEngine-Pid-jdwlq5oa.nev --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
min = 100,max = 900
E:\Users\admin\Documents\VScode>
页: [1]
查看完整版本: 函数需要返回多个值,请问除了指针,还有其他方法吗?