传递普通参数
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)
{
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]);
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])
{
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