结构体的定义及初始化

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

(3) 把定义和说明分开,例如:
struct example { char *name;
结构体变量占 用内存的大小
int age; };
struct example guo,zhang;
可用sizeof() 运算来求出
4
结构体的说明及结构体变量的定义 • 变量说明形式
结构体的说明及结构体变量的定义
• 结构体类型定义
struct是关键字, 不能省略
struct [结构体名]
{ 类型标识符 成员名; 类型标识符 成员名;
……………. };
合法标识符 可省:无名结构体
成员类型可以是 基本型或构造型
1
例子图解
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };
成员(分量)运算符 优先级: 1 结合性:从左向右
可以将一个结构体变量赋值给另一个结构体变量 结构体嵌套时逐级引用
6
结构体成员的引用
• 不能将一个结构体变量作为一个整体加以引用, 而只能对结构体变量中各个成员进行引用
如:printf(“ …”,student1);(错误) 对成员变量可以象普通变量一样进行各种运算
成员地址与结构体地址都可以引用,如: scanf(“ %d”,&student1.num); … 它是成员地址引用 printf(“ %d”,&student1); … 它是结构体地址引用
赋值时,与数组类似,只能当结构体变量为全局 变量及静态变量时,可以赋值
7
结构体变量的初始化
➢ 形式一:
struct 结构体名
9
结构体变量的初始化
➢ 形式三:
struct {
类型标识符 成员名; 类型标识符 成员名;
……………. }结构体变量={初始数据};
例 struct { int num; char name[20]; char sex; int age; char addr[30]; }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”};
{ 类型标识符 成员名; 类型标识符 成员名;
……………. }; 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”};
……………. };Baidu Nhomakorabea
合法标识符 可省:无名结构体
成员类型可以是 基本型或构造型
3
• 结构体变量的定义
(1) 在结构体说明的同时定 (2)直接定义结构体
义结构体变量,例如:
变量,例如: 未给
struct example { char *name;
int age; }guo,zhang;
struct
出结
num name
sex age
score
addr

2字节 20字节 1字节 2字节
4字节
30字节
…..
结构体类型定义描述结构 的组织形式,不分配内存
2
结构体的说明及结构体变量的定义
• 结构体类型定义
struct是关键字, 不能省略
struct [结构体名]
{ 类型标识符 成员名; 类型标识符 成员名;
10
➢ struct 结构体名 结构体变量名;
• 注意:
➢ 结构变量的存储类型概念、它的寿命、可见 性及使用范围与普通变量、数组等完全一致。
➢ 结构体变量说明必须在结构类型定义之后, 二者也可同时进行。
5
结构体成员的引用
➢ 引用规则
• 结构体变量不能整体引用,只能引用变量成员
引用方式: 结构体变量名.成员名
相关文档
最新文档