求教:关于double 和float的转换问题
#include<stdio.h>float copy_ptr(float a[],float b[],int n,int m);
/* 将第一个数组的第3到第5个元素复制到第二个数组*/
int main(void)
{
int i;
float source[7]={1.1,2.2,3.3,4.4,5.5,6.6,7.7};
float target1[3];
for(i=0;i<7;i++)
printf("%7.2f",source[i]);
printf("\n");
copy_ptr(source,target1,3,5);
for(i=0;i<3;i++)
printf("%7.3f",target1[i]);
printf("\n");
return(0);
}
float copy_ptr(float a[],float b[],int n,int m)
{
int i;
float *p;
for(p=a+n,i=n;i<m;i++)
b[i]=*p++;
}
返回的结果不对,并且警告:truncation from 'const double ' to 'float ',但我程序中没有用double呀!