黑马程序员——结构体

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


一、结构体

结构体指一种数据结构,它由不同类型的数据组合成一个整体,这些组合在一个整体中的数据具有一定的相关性,这样的数据结构称为结构体。

 

二、结构体类型声明

结构体的一般声明形式:

struct 结构体名{

成员列表

};

对结构体内的各成员都应进行类型声明,声明格式如下:

类型名 成员名;

如定义一个时间结构体

struct Time{

int year;

int month

int day

};

 

三、结构体类型变量定义

    1、先声明,再定义

struct Time{

int year;

int month

int day

};

struct Time TodayTime

 

2、声明与定义同时进行

struct Time{

int year;

int month

int day

}struct Time TodayTime;

 

3、直接定义变量

struct {

int year;

int month

int day

} TodayTime;

此时不出现结构体名

 

四、结构体变量赋值

1、定义时同时赋值

struct Time{

int year;

int month

int day

} TodayTime={2015,3,12};

 

2、先定义后赋值

struct Time{

int year;

int month

int day

} TodayTime;

 

TodayTime.year=2015;

TodayTime.month=3;

TodayTime.day=12;

 

注意:在赋值时,下面这种方式是错误的:

struct Time{

int year;

int month

int day

} TodayTime;

TodayTime={2015,3,12}//只有再定义时同时赋值,才能采取此种方式

 

五、结构体成员指向

结构体内部数据有两种指向方式,第一种形式为 结构体名.结构体对象。第二种为结构体名->结构体对象。

当存在结构体嵌套时,及结构体内包含着结构体成员,其指向方式为 结构体名.结构体对象.结构体对象 或者 结构体名->结构体对象->结构体对象。

 

六、结构体数组

当存在多组结构体数据时,可采用结构体数组方式存储。

结构体内部成员也可以为数组形式。

结构体数组赋初值也有两种方式:

1、定义时同时赋值

struct Time{

int year;

int month

int day

} TodayTime[]={{2015,3,12},{2014,3,5},{2016,5,16}};

 

2、先定义后赋值

struct Time{

int year;

int month

int day

} TodayTime;

TodayTime[]={{2015,3,12},{2014,3,5},{2016,5,16}};

 

七、结构体指针

1、指向结构体变量的指针

Struct Time TodayTime;

Struct Time *p;

p = &TodayTime;

指针p指向结构体变量TodayTime,在取值时,可以表示为TodayTime.year,也可以表示为(*p).year,此处的()不能省略,因为.的优先级高于*,如果不加括号,就相当于*(p.year). 

 

2、指向结构体数组的指针

TodayTime[]={{2015,3,12},{2014,3,5},{2016,5,16}};

Struct Time *p;

p = TodayTime[];//此处不需要取地址符,因为数组本名本身就是存的首元素的地址

指针p指向TodayTime的首元素,若执行p+1p指向首元素的下一个元素。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值