【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';
}