C语言中,数组初始化的方式主要有三种:
1、声明时,使用 {0} 初始化;
2、使用memset;
3、用for循环赋值。
那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码:
#define ARRAY_SIZE_MAX (1*1024*1024)
void function1()
{
char array[ARRAY_SIZE_MAX] = {0}; //声明时使用{0}初始化为全0
}
void function2()
{
char array[ARRAY_SIZE_MAX];
memset(array, 0, ARRAY_SIZE_MAX); //使用memset方法
}
void function3()
{
int i = 0;
char array[ARRAY_SIZE_MAX];
for (i = 0; i < ARRAY_SIZE_MAX; i++) //for循环赋值
{
array[i] = 0;
}
}
效率: