C语言结构体里的结构体怎么初始化

Python017

C语言结构体里的结构体怎么初始化,第1张

方法是在定义变量的同时给其一初始值。结构体变量的初始化,遵循相同的规律。

简单变量的初始化形式如下:

数据类型 变量名=初始化值

例如,定义整型变量a,并给其初始化值10的语句如下

int a=10

数组的初始化,需要通过一常量数据列表,对其数组元素分别进行初始化,形式如下:

数据类型 数组名称〔数组长度〕={初始化值1,初始化值2,…, 初始化值n}

例如,定义长度为5的整型数组,并对其初始化的语句如下:

int A[5]={20,21,0,3,4}

结构体变量的初始化方式与数组类似,分别给结构体的成员变量以初始值,而结构体成员变量的初始化遵循简单变量或数组的初始化方法。具体的形式如下:

struct 结构体标识符

{

成员变量列表

}

struct结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n }

例如,定义struct Point类型变量,并初始化的语句如下:

struct Point oP1={0.0,0.2,0.3};

struct Point类型变量oP1的三个成员变量的值分别为

oP1.x=0.0,

oP1.y=0.2

oP1.z=0.3

由于定义结构体变量有三种方法,因此初始化结构体变量的方法对应有三种,上面已经介绍了其中的一种形式,其他两种形式如下:

struct Point

{

double x

double y

double z

} oP1={0.0,0.2,0.3}; struct

{

double x

double y

double z

} oP1={0.0,0.2,0.3};

在初始化结构体变量时候,既可以初始化其全部成员变量,也可以仅仅对其中部分的成员变量进行初始化。例如:

struct Student

{

long id

char name[20]

char sex

}a= {0}

其相当于a.id=0;a.name=“”;a.sex=‘\0x0’。

仅仅对其中部分的成员变量进行初始化,要求初始化的数据至少有一个,其他没有初始化的成员变量由系统完成初始化,为其提供缺省的初始化值。

结构体初始化可以再定义时制定初始值,如:

struct

student

{

int num

char name[20]

} student1 =

{10001,"zhangxin"}

也可以采取申明类型与定义变量分开的形式,在定义变量时进行初始化:

student student1 =

{10001,"zhangxin"} 。

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data

type)的一类。

结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。