结构体知识点

1.结构体所占的字节数:
内存对齐 :1)对于大多数计算机,数据项要求从某个数量字节数的倍数开始存放
2)short型数据从偶数地址开始存放,而int型数据则被存放在4字节地址边界
3)为了满足内存地址对齐的要求需要在较小的成员后加入补位
结构体在内存中所占的字节数与所定义的结构体类型有关

2.通过名字访问结构体成员:结构体变量名 . 成员名
例. strcpy(stu1.studentName,“王刚”); //为字符数组的首地址
对嵌套的结构体成员,必须以级联方式访问
例. Stu1.birthday.year=2000;
//结构体变量
//结构体变量
只能在相同类型的结构体进行赋值!!!

标识结构数组的成员:
为了表示结构数组中的成员,可以采用访问单独结构的规则:在结构名后面加一个点运算符,再在点运算符后面写上成员名。如下所示:
Library[0].value //第1个数组元素与value相关
注意:数组下标紧跟在library后面,不是成员名后面:

Library.value[2]  //错误
Library[2].value  //正确

思考:library[2].title[4]表示library数组第3个结构变量(library[2]部分)中书名的第5个字符(title[4]部分)

嵌套结构
有时候,在一个结构中包含另一个结构(即嵌套结构)很方便。
例.

Struct names
{  char first[LEN];
   char last [LEN];
};  //第一个结构
Struct guy
{
  struct names handles;
 char favfood[LEN];
  char job[LEN];
 float income;}

如何在结构声明中创建嵌套结构?
和声明int类型变量一样,进行简单的声明:

Struct names handle;

该声明表示handle是一个struct names类型的变量。当然,文件中也应包含结构names的声明。其次,注意如何访问嵌套结构的成员,这需要使用两次点运算符:

printf("hello,%s!\n",fellow.handle.first);

从左往右解释fellow.handle.first:(fellow.handle).first
也就是说,找到fellow,然后找到fellow的handle的成员 ,再找到handle的first成员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值