问题描述
- 这个c程序什么意思啊,特别是第二个函数什么意思?
-
#include
#include
#includevoid 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("%gt", 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;
}
第二个函数什么意思,我对可变参数也不是很理解,求详解。
解决方案
double * new_d_array(int n, ...)
创建一个double类型的数组,返回数组起始地址,n是数组元素个数,后面是给各个元素初始化。
va_list的用法:
解决方案二:
可变参数函数,上百度搜搜
解决方案三:
double * new_d_array(int n, ...)
创建一个double类型的数组,返回数组起始地址,n是数组元素个数,后面是给各个元素初始化。
va_list的用法:
解决方案四:
double * new_d_array(int n, ...)
创建一个double类型的数组,返回数组起始地址,n是数组元素个数,后面是给各个元素初始化。
va_list的用法: