???OY 2015-11-12 14:16 采纳率: 44.4%
浏览 1500

这个c程序什么意思啊,特别是第二个函数什么意思?

#include
#include
#include

void show_array(const double ar[], int n);
double * new_d_array(int n, ...);

int main()
{
double * p1;
double * p2;

p1 = new_d_array(5, 1.2, 2.3, 3.4, 4.5, 5.6);
p2 = new_d_array(4, 100.0, 20.00, 8.08, -1890.0);
show_array(p1, 5);
show_array(p2, 4);
free(p1);
free(p2);

return 0;

}

void show_array(const double ar[], int n)
{
int i;
for(i=0; i<n; i++)
printf("%g\t", ar[i]);
printf("\n");
}

double * new_d_array(int n, ...)
{
double *p;
int i;
va_list ap;
p = (double *) malloc(n*sizeof(double));
va_start(ap, n);
for(i=0; i<n; i++)
p[i] = va_arg(ap, double);
va_end(ap);
return p;
}
第二个函数什么意思,我对可变参数也不是很理解,求详解。

  • 写回答

4条回答 默认 最新

  • ysuwood 2015-11-12 14:27
    关注

    double * new_d_array(int n, ...)
    创建一个double类型的数组,返回数组起始地址,n是数组元素个数,后面是给各个元素初始化。
    va_list的用法:

    http://baike.baidu.com/link?url=coIuMPrBb5jwazoLWLgATsaEtvHxf8fDmTB-KKin2dg5ORYhOxEVW0EEVBnWuCUdrozNAoMy5RiO5iCLIxvj7_

    评论

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题