【C语言皮一下】对数组进行整体赋值

对数组整体赋值

【数组不能整体赋值!!!】老师的拳拳教诲依旧回荡耳畔(๑òᆺó๑)(噗,有点不对劲)

aaaaa那到底能不能整体赋值呢,当然还是有办法的啦~

具体实现

首先整理一下实现思路:写一个函数,传入目标数组和所需要赋的各个值,实现将所有值存进数组中。

那么问题就在于数组的长度不确定,所要传入的参数个数也不确定。
这时候可变参数就派上用场了!!

详细可以看看这篇:printf是如何实现可变参数的?自定义函数能否实现参数可变?【C语言】

[ 了解可变参数后就直接开始咯 ]
实现过程:第一个参数设置为数组,通过sizeof获取数组长度,按照该长度使用循环将各个参数的值赋给数组

下面挂上代码(以整型数组为例,其他数组同理)

1
2
3
4
5
6
7
8
9
10
11
12
//给整型数组整体赋值
void setArray(int arr[], ...)
{
int length = sizeof(arr); //获取该数组的长度
va_list val;
va_start(val, arr);
for (int i = 0; i < length; i++)
{
arr[i] = va_arg(val, int); //给每个元素赋值
}
va_end(val);
}

思路简单清晰不难理解,使用也挺方便,可以当做工具函数用上。
==用法:setArray( 数组名 ,参数1,参数2 …)==


盾来弯矛刺,石立曲水激(寒冰小澈)