C语言一维数组、二维数组传参

传递普通参数

float add2num(float num1, float num2);
int main()
{
    float num1, num2, num3;
    num1 = 1.1;
    num2 = 2.2;
    num3 = add2num(num1, num2);
    printf("num3 is %.2f\n", num3);
    return 0;
}
float add2num(float num1, float num2)
{
    float num3;
    num3 = num1 + num2;
    return num3;
}

传递一维数组

float *addNumArr1d(float num1, float* arr1);
int main()
{
    float num1;
    num1 = 1.1;
    float arr1[2] = {4.4, 5.5};
    float *result_arr;
    result_arr = addNumArr1d(num1, arr1);
    printf("result_arr[0] is %.2f\n", *result_arr);
    printf("result_arr[1] is %.2f\n", result_arr[1]);
    return 0;
}
float *addNumArr1d(float num1, float* arr1)
{
    //static float result_arr[sizeof(arr1) / sizeof(arr1[0])];
    float* result_arr;
    result_arr = (float*)malloc(sizeof(arr1) / sizeof(arr1[0]) * sizeof(float));

    result_arr[0] = num1 + arr1[0];
    result_arr[1] = num1 + arr1[1];

    return result_arr;
}

传递二维数组

float *addNumArr2d(float num1, float (*arr2)[2]);
// 二维数组需要定义列的长度,此处取2
// float *addNumArr2d(float num1, float arr2[][2]); // 效果相同
int main()
{
    float num1;
    num1 = 1.1;
    float arr2[2][2] = {{1, 2}, {3, 4}};
    result_arr = addNumArr2d(num1, arr2);
    printf("result_arr[0] is %.2f\n", *result_arr);
    printf("result_arr[1] is %.2f\n", result_arr[1]);
    return 0;
}
float *addNumArr2d(float num1, float (*arr2)[2])
// 二维数组需要定义列的长度,此处取2
// float *addNumArr2d(float num1, float arr2[][2]); // 效果相同
{
    static float result_arr[sizeof(arr2[0]) / sizeof(arr2[0][0])];

    result_arr[0] = num1 + arr2[0][0];
    result_arr[1] = num1 + arr2[1][1];

    return result_arr;
}

参考:
[1] 函数返回指针/数组
[2] 传递二维数组
有问题请联系lxiong13@outlook.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LucXiong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值