结构体的定义及初始化 - 图文

更新时间:2024-03-06 13:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

结构体的说明及结构体变量的定义

?结构体类型定义

合法标识符可省:无名结构体struct [结构体名]{类型标识符成员名;类型标识符成员名;…………….};struct是关键字,不能省略成员类型可以是基本型或构造型1

例子图解

例struct student{ int num;char name[20];char sex;int age;float score;char addr[30];}; num2字节

…namesexage20字节

1字节2字节4字节

score…..addr30字节

结构体类型定义描述结构的组织形式,不分配内存2

结构体的说明及结构体变量的定义

?结构体类型定义

合法标识符可省:无名结构体struct [结构体名]{类型标识符成员名;类型标识符成员名;…………….};struct是关键字,不能省略成员类型可以是基本型或构造型3

?结构体变量的定义

(1) 在结构体说明的同时定义结构体变量,例如:struct example { char *name;

int age;

}guo,zhang;

(3) 把定义和说明分开,例如:

struct example

{ char *name;int age;};

struct example guo,zhang;

(2)直接定义结构体变量,例如:struct 未给

{char *name;出结int age;构体}guo,zhang名

结构体变量占用内存的大小可用sizeof()运算来求出4

结构体的说明及结构体变量的定义?变量说明形式

?

struct 结构体名结构体变量名;

?注意:

?

?

结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量、数组等完全一致。结构体变量说明必须在结构类型定义之后,二者也可同时进行。

5

结构体成员的引用

引用规则

?结构体变量不能整体引用,只能引用变量成员引用方式:

结构体变量名.成员名成员(分量)运算符优先级: 1

结合性:从左向右

可以将一个结构体变量赋值给另一个结构体变量结构体嵌套时逐级引用

6

?

结构体成员的引用

?不能将一个结构体变量作为一个整体加以引用,而只能对结构体变量中各个成员进行引用

如:printf(“ …”,student1);(错误)

对成员变量可以象普通变量一样进行各种运算成员地址与结构体地址都可以引用,如:

scanf(“ %d”,&student1.num); … 它是成员地址引用printf(“ %d”,&student1); … 它是结构体地址引用赋值时,与数组类似,只能当结构体变量为全局变量及静态变量时,可以赋值

7

结构体变量的初始化

?

形式一:

struct 结构体名{

类型标识符成员名;类型标识符成员名;…………….};

struct 结构体名结构体变量={初始数据};

例struct student{ int num;char name[20];char sex;int age;char addr[30];}; struct student stu1={112,“Wang Lin”,?M?,19, “200 Beijing Road”};8

结构体变量的初始化

?

形式二:

struct 结构体名{

类型标识符成员名;类型标识符成员名;…………….

}结构体变量={初始数据};

例struct student{ int num;char name[20];char sex;int age;char addr[30];}stu1={112,“Wang Lin”,?M?,19, “200 Beijing Road”}; 9

结构体变量的初始化

?

形式三:

struct{

类型标识符成员名;类型标识符成员名;…………….

}结构体变量={初始数据};

例struct{ int num;char name[20];char sex;int age;char addr[30];}stu1={112,“Wang Lin”,?M?,19, “200 Beijing Road”}; 10

本文来源:https://www.bwwdw.com/article/glaa.html

Top