遇到问题
在VS中使用C语言时,遇到了一个问题,在主函数中定义了一个单精度类型数组,传递到双精度函数参数时,出现了问题,后经过测试,如果是单个数,则不会产生影响。所以在调用函数的过程中,一定要注意形参的数据类型一定要与变量对应上,否则会出现意想不到的结果。
问题复现
闲言少叙,直接上代码,这里写了一个数单精度转双精度和一个数组单精度转双精度的情况。
#include<stdio.h>
void N_float_to_double(double D_num);//声明函数
void A_float_to_double(double D_array[5]);//声明函数
void main()
{
// 一个数-单精度转双精度
float F_num = 0.39;
printf("一个数在没经过转化前:%f\n", F_num);
N_float_to_double(F_num);
// 一个数组-单精度转双精度
float F_array[5] = {0.1,0.2,0.3,0.4,0.5};
printf("一个数组在没经过转化前:\n");
int i = 0;
for (i = 0; i < 5; i++)
{
printf("%f\n", F_array[i]);
}
A_float_to_double(F_array);
system("pause");
}
//一个数-单精度转双精度
void N_float_to_double(double D_num)
{
printf("一个数在没经过转化后 : %lf\n", D_num);
}
//一个数组-单精度转双精度
void A_float_to_double(double D_array[5])
{
printf("一个数组在没经过转化后 :\n");
int i = 0;
for (i = 0; i < 5; i++)
{
printf("%lf\n", D_array[i]);
}
}
测试结果如下:
可以看出一个数没有影响,但是数组这里就出现了问题,所以在调用函数时一定要注意保持参数类型一致。