数组

发布时间 2023-12-26 11:32:02作者: 自由小菜园

数组的初始化可以通过下面的方式

=字符串字面量

={表达式,……}

分别对应一些常见的方式

char arr[]="hello";//字符串字面量,是char的数组类型,但是用于初始化数组的时候不会发生隐适转换成指针
char *arr[]={"hello","world"};//"hello"和"world"都是表达式,是char 的数组类型,因此转换成首元素指针
int arr[]={'h','e','l','l','o'};

上面最后一个声明成int arr[ ] ,你可能奇怪为什么不用char arr[ ],其实后面的那些字符字面量'a'……,本身就是int类型。

(char []){"hello"}; 这是一种复合字面量,表示数组对象,是左值

所以我们也可以这样声明数组

char *arr[]={(char []){"hello"}};

char arr[]={*(char []){"hello"}='z'}; 里面的(char []){"hello"}数组对象,转换成首元素指针,然后解引用得到数组第一个元素,修改其值为'z',作为表达式用于初始化arr字符数组