结构体的简单总结

结构体与链表

1、 结构体的概念

A)数组可以定义变量集合,所有的元素都只能有一个类型

B)结构体也可以定义变量集合,任何成员都可以是不同类型

C)通常数组内部变量叫做元素,结构体内部变量叫成员

D)使用结构体定义的变量也叫对象

 

2、 定义结构体:  //注意结构体结尾处要有“;”

Struct [结构体名]

{

类型标识符成员名: //都是普通变量

类型标识符成员名

                   。。。。。。。。。。。

};

A) 方括号代表可以不指定名字

B) 分号错误:

Error C 2628:’SInfo’ followed by ‘int ’ is illeagel

 

3、 定义结构体要注意:

A) 一般定义在函数外,让所有的函数都能访问

B) 往往定义在.h头文件中,可以被多个cpp文件包含(并使用)

C) 变量无法在.h头文件中定义,最多可以使用extern把cpp中的变量声明到.h中

D) 结构体定义形成了创建结构体变量的模板,它是一个类型而不是一个变量

E) 结构体只用定义了对象(结构体变量)

F)  结构体中的变量称为结构体元素或者结构体成员

 

4、 结构体之间的定义

A) 一个结构体可以包含另一个结构体对象作为成员变量

B) 结构体不能自己包含自己(求sizeof会出现镜中镜)

C) 本结构体的指针可以作为结构体成员

5、 结构体变量(对象-Objict)

A) 定义好了结构体之后,并没有申请内存空间

B) 结构体自身不是变量,而是一种类型

C) 相当于一个结构体就是一个模板,在定义变量时依据模板在内存上申请空间

 

6、 定义结构体对象

A) 最主要的定义结构体对象的方式,是使用结构体名或者别名来定义结构体对象(或者指针)

B) 可以在结构体尾部直接定义结构体对象,结构体指针变量

C) 没有名字的结构体只能在尾部定义变量

 

7、 结构体初始化

A) 使用大括号或者多层大括号

B) 结构体整体赋值:两个同类型的结构体对象之间的结构体赋值

①将所有的成员赋值一遍(最差的方法)

②memcpy可以将两个结构体赋值

③2个同类型的结构体对象直接用=赋值(=赋值在编译器内其实还是使用memcpy)

 

8、 结构体成员

A) 对于对象的成员变量的调用在对象后面跟.调用

例如:对象.成员变量            point.x

B) 早期使用(*对象指针)方式访问结构体成员,后来简化为 –>

例如:(*p).x

C) 对象的指针对成员变量的调用使用指针符号 ->

P -> x

 

9、 结构体做参数时:

A) 结构体作为参数时,复制了一个新的结构体对象(效率低)

int GetDayofYear(STime time)

B) 使用结构体指针

Int GetDayofYear(STime *time)

10、           结构体数组

A) 定义:定义结构体对象时加[]指定对象个数

B) 初始化和清零:使用一层或者多层大括号

例如:

   SStudentstu[100] =

   {

   {1001,”张珊”,75,100}

   {1002,”李四”,80,90}

}

C) 清零:

SStudent stu[100] = {0};

Memset{stu,0,sizefo(stu)};

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值