由于C语言语法中,创立数组时并不会对数组进行默认初始化,我们需要自行进行初始化赋值,有可能这过程中又能导致程序结果出错。
这里我们将讨论整数数组初始化的问题。
由于我常常担心数组初始化不完全,因此我使用函数memset()
函数进行数组初始化
void *memset(void *str, int c, size_t n);
memset
赋值的时候是按字节赋值的,所以memset
是给参数str的前n个字节都赋值为c。由于一个int为四个字节,因此,只能给int类型数组赋值0或-1才是准确的。一般这样写:
memset(array,0,sizeof(array));
实际上,memset主要是用于给动态数组进行初始化的。静态数组初始化只需要:
int array[100]={0};
或者这样:
int array[100]={3,7,4};
剩下未列出的部分系统会自动赋值为0。
但是:
int array[100];
array={3,4,5};
//或者
array[100]={3,4,5};
都无法通过编译,而:
int array[100];
array[0]={0};
只能给数组0号坐标初始化,其他数组坐标并不会受到影响。