C语言数组的初始化表示方法

Python017

C语言数组的初始化表示方法,第1张

C语言数组初始化表示方法有4种,分别是:

1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:

int nums[] = {1, 3, 5};

由此可推出结构体在定义的同时进行初始化的代码如下:

struct Person p = {"lee", 23, 1.8}

2、先定义再进行初始化,这种初始化方法其实昨天的内容里已经写过了,代码如下:

struct Person p

p.name = "lee"

p.age = 23

p.height = 1.8

我们知道数据定义好后就不能对其进行一次性初始化了,比如如下代码是编译不通过的。

int nums[3]

num = {1, 2, 3}

3、第三种结构体比较例外,它可以这样做,只不过需要对其进行一下强制类型转换,代码如下:

struct Person p

p = (struct Person){"xq, 8, 8.8}

4、指定将数据赋值给指定的属性,数组中我们见过这种写法,代码如下:

int nums[3] = {[0] = 2, [2] = 1, [1] = 2}

我们可以为不同的索引指定值,并不需要一定要按顺序来,所以数组可以,结构体是否可以呢,当然,代码如下:

struct Person p = {.height = 1.8, .name = "lee", .age = 23}

我来一一解答,希望解答的合适请多加点分,谢谢

1,C语言有的数据类型都可以作为数组的类型,不光是int,char

float

double

long

指针

结构等等都可以是数组的类型。

2,这样理解是正确的,数组中的每一个元素和这个数组类型一样的变量类型相同,取值范围相同,只是引用方式不一样。

3,是的,数组的性质都是一样的,不光是char,所有类型都符合这一规律

4,那么char型变量和数组用什么值给其初始化比较安全?这种提问没有见过,只能说不初始化会使数组指向其他内存单元,导致不确定的值。最好是在数组初始化的时候赋给你需要用的值

还有什么问题可以Hi我

结构体是个空架子,是无法“初始化其中的数组”的,只有初始化结构体的对象(即变量)。像你这里可以这么做:在使用这个结构体前写一句struct

bf

x={NULL,NULL,NULL,NULL},那么x中的所有字符数组就都为空了。