【C 语言基础】C风格数组初始化”={a};方式”的特性

当进行数组初始化的时候,可以采用 ={一个元素的值} 的方式,例如:

int intarr[10] = {1};
int chararr[20] = {'a'};

使用这种方式初始化,可以将数组所有成员都初始化,没有随机值,从而保证了安全。

其中,数组的值初始化为:第一个值(arr[0])为指定元素的值,其余成员(arr[1.....end])的值全为0。

 

测试代码:

#include "iostream"

using namespace::std;
int main()
{
    char chararr[20] = {'a'};//第一个被初始化为'a' 其余被初始化为0(\0)
    int intarr[20] = {1};//第一个被初始化为1,其余被初始化为0

    cout << chararr << endl;
    for(int i=0; i<20; i++)
    {
        if(chararr[i] == '\0')
        {
            cout << "This is a NULL" <<endl;
            continue;
        }
        cout << chararr[i] << " " << endl;
        //cout << intarr[i] << " " << endl;
    }

    return 0;
}

结果如下:

 

 

扩展:字符串初始化的四种方式:

字符串初始化的方法比较多,我这里简单介绍4种,因为字符串本质上是由一个个字符组成的字符数组,所以其初始化的最终目的,就是将字符数组里面的一个个字符都初始化为'\0'

其中包括隐式办法和显式办法,隐式办法写起来简单,但比较难理解。显式办法写起来较复杂,但容易理解。

方法一:使用空的字符串""。(隐式办法)
char str[10] = "";
方法二:使用={'\0'}方式。(隐式办法)
char str[10] = {'\0'}
或
char str[10] = {0}
方法三:使用memset
char str[10];
memset(str, 0, sizeof(str));
方法四:写一个循环。
char str[10];
for(int i = 0; i < 10; i++)
{
    str[i] = '\0';
}
posted @ 2023-11-14 12:05  FBshark  阅读(38)  评论(0编辑  收藏  举报