C语言常见问题 |
您所在的位置:网站首页 › c语言初始值是什么意思 › C语言常见问题 |
有一回,小易同学对我说:“你学过编程吗”,我略略点一点头。他说,“学过编程,我便考一考你,在使用数组之前,应不应该初始化数组?” 我暗想,这么简单的问题,也配考我么?不只是数组,在使用任何变量之前,都应该对变量进行初始化,这是一个编程的好习惯,可以有效避免许多由于垃圾值导致的bug。于是我回过脸去,不再理会。 小易同学等了许久也不见我回答,很诚恳的说道,“不知道罢?我教给你,记着!......数组的初始化有4种写法——” 目录 1.初始化参数列表 2.使用memset函数初始化(只建议用于字符数组) 3.指定初始化器(gcc支持) 4.使用for循环初始化 5.总结 1.初始化参数列表全部初始化为0: int a[10]={0}; char str[10]="\0"; //等价于char str[10]={0};初始化为其他值: int a[10]={0,1,2,3,4,5,6,7,8,9}; char str[10]="Hello"; //也可以写成char str[10]={'H','e','l','l','o','\0'}如果初始化列表包含数组a的所有元素,可以省略数组的长度: int a[]={0,1,2,3,4,5,6,7,8,9};多维数组在计算机中也是线性存储的,因此下面两种写法等价: int a[2][5]={{0,1,2,3,4},{5,6,7,8,9}}; //int a[2][5]={0,1,2,3,4,5,6,7,8,9};注意,如果你想把数组元素全部初始化为一个非零值(比如1),不能使用int a[10]={1}这种方式。int a[10]={1}只会把a[0]初始化为1,而把其他元素初始化为0(C99标准下)。 memset函数的定义包含在头文件string.h中,其函数原型如下: void *memset(void *s, int c, unsigned long n); //memset函数:将s指向的内存位置后面n个字节的存储空间替换为c #include #include int main(){ int i=0; char a[10]; memset(a,'a',sizeof(a));//初始化 for(i=0;i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |