C语言常见问题

您所在的位置:网站首页 c语言初始值是什么意思 C语言常见问题

C语言常见问题

2024-07-05 17:51| 来源: 网络整理| 查看: 265

        有一回,小易同学对我说:“你学过编程吗”,我略略点一点头。他说,“学过编程,我便考一考你,在使用数组之前,应不应该初始化数组?”

        我暗想,这么简单的问题,也配考我么?不只是数组,在使用任何变量之前,都应该对变量进行初始化,这是一个编程的好习惯,可以有效避免许多由于垃圾值导致的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标准下)。

2.使用memset函数初始化(只建议用于字符数组)

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