数组初始化为1
什么是结构数组的初始化?
结构体数组的初始化是什么?
1、初始化
typedefstruct_TEST_T {undefined
int i
char c[10]
}TEST_T
TEST_T gst = {1, 12345)//可以初始化。s一个字符串.
TEST_T gst = {1}//初始化个数小于实际个数时,初始化前面只有成员。
TEST_Tgst = {.c=初始化成员12355//有选择。
2、复合字面量。
gst = (TEST_T){122, 1256}//这是一个赋值语句,也可以作为初始化。它可以出现在程序的任何地方。
当然也可以用复合字面量来初始化:
gst = (TEST_T){.i=122, .c=“123”}
3、结构体数组
可以用多个大括号括起来:
TEST_T gst[10] = {undefined{},
其中一个元素也可以初始化:
TEST_T gst[10] = {[2]={}, [3]={}}
也可以使用复合字面量:
TEST_T gst[10] = {[2].i=0, [3].i={}
C如何初始化字符数组?
1、直接逐个初始化字符数组:
对于字符数组的初始化,最容易理解的方法就是逐字赋予数组中的元素。
char str[10]={ #39I#39,#39 #39,#39a#39,#39m#39,#39 #39,‘h’,#39a#39,#39p#39,#39p#39,#39y#39}
注:如果花括号中提供的字符数大于数组长度,则按语法错误处理;如果小于数组长度,则只自动将这些字符数组中的前部元素和其他元素设置为空字符(即#39\\\\0#39
)。
2、用字符串常量来初始化字符数组:
在C语言中,字符串作为字符数组进行处理。所以可以用字符串来初始化字符数组。
char str[]={#34I am happy#34}
也可以省略花括号。
char str[]=#34I am happy#34
但是,上述字符数组的整体分配只能在字符数组初始化时使用,而不能用于字符数组的分配。字符数组的分配只能逐个分配其元素。以下分配方法是错误的。
char str[]
str=#34I am happy#34//错误,字符数组的赋值只能按元素一一赋值