初始化数组的方法
数组初始化为0的方式?
c语言数组类型如何全部初始化?
具体初始化方法可以参考如下程序段:(方法一)1int a[5] = {0} // 将整型数组a的每个元素都初始化为0或者也可以用如下方法进行初始化:(方法二)1int a[5] = {0, 0, 0, 0, 0} // 将整型数组a的每个元素都初始化为0,初始化效果同上方法一的初始化方法是将数组元素都初始化为同一个数值;方法二的初始化方法可以分别对数组的每个元素进行初始化,每个元素的数值可以不同。
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//错误,字符数组的赋值只能按元素一一赋值
C语言数组初始化值如何计算?
C语言数组的初始化表示方法有4种,分别是:
1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:
int nums[] = {1, 3, 5};
由此可推出结构体在定义的同时进行初始化的代码如下:
struct Person p = {#34lee#34, 23, 1.8}
2、先定义再进行初始化,这种初始化方法其实昨天的内容里已经写过了,代码如下:
struct Person p
p.name = #34lee#34
p.age = 23
p.height = 1.8
我们知道数据定义好后就不能对其进行一次性初始化了,比如如下代码是编译不通过的。
int nums[3]
num = {1, 2, 3}
3、第三种结构体比较例外,它可以这样做,只不过需要对其进行一下强制类型转换,代码如下:
struct Person p
p = (struct Person){#34xq, 8, 8.8}
4、指定将数据赋值给指定的属性,数组中我们见过这种写法,代码如下:
int nums[3] = {[0] = 2, [2] = 1, [1] = 2}
我们可以为不同的索引指定值,并不需要一定要按顺序来,所以数组可以,结构体是否可以呢,当然,代码如下:
struct Person p = {.height = 1.8, .name = #34lee#34, .age = 23}