首页 > 编程语言 > 详细

C语言-宏实现的按值传递任意大小数组

时间:2020-05-05 13:16:53      阅读:73      评论:0      收藏:0      [点我收藏+]

利用stdarg.h库支持的宏函数来接收数据实现储存任意大小的数组

技术分享图片
 1 #include<stdio.h>
 2 #include<stdlib.h>//malloc
 3 #include<stdarg.h>//宏支持原型
 4 #define SIZE 5
 5 double * CreateArray(int p,...){
 6   va_list pt;//初始化参数列表
 7 
 8   va_start(pt,p);//参数列表pt有p个参数
 9 
10   double *z=(double *)malloc(p*sizeof(double));//分配空间
11   for(int x=0;x<p;x++)
12     z[x] = va_arg(pt,double);//每次调用va_arg完都会指向下一个参数
13   va_end(pt);//清理参数列表
14 
15   return z;//返回指针
16 }
17 void ShowArray(const double ar[],int size){
18   for(int x=0;x<size;x++)
19   {
20     printf("%f ",ar[x]);
21 
22     if((x+1)%8==0)
23       printf("\n");
24   }
25 }
26 void main(void){
27   ShowArray(CreateArray(SIZE,2.4,3.6,4.2,5.0,6.7),SIZE);
28 }
View Code

 

C语言-宏实现的按值传递任意大小数组

原文:https://www.cnblogs.com/Let-us-Coding/p/12830242.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!