C和指针(7)结构和联合

第10章

(1)聚合数据类型能够同时存储超过一个的单独数据。C提供了两种类型的聚合数据类型,数组和结构。数组是相同类型的元素的集合,它的每个元素是通过下标引用或指针间接访问来选择的(因为数组的元素长度相同)。

(2)结构也是一些值得的集合,这些值称为它的成员,但一个结构的各个成员可能长度不同,故不能使用下标来访问它们。相反,每个结构都有自己的名字,它们是通过名字访问的。

(3)结构变量和属于标量类型,可以像对待其他标量类型那样执行相同类型的操作。结构也可以作为传递给函数的参数,它们也以作为返回值从函数返回,相同类型的结构变量相互之间可以赋值。

(4)结构声明:必须列出它包含的所有成员。这个列表包括每个成员的类型和名字。structtag{member-list}variable-list;//所有可选部分不能全部省略——至少出现两个。

(5)结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数,做操作数是结构变量的名字,有操作数就是需要访问的成员的名字。这个表达式的结果就是指定的成员。

(6)下表引用和点操作符具有相同的优先级,他们的结合性都是从左至右。而点操作符的优先级是高于间接访问操作符的。

(7)箭头操作符->和 点操作符一样,接受两个操作数,但左操作数必须是一个指向结构的指针。箭头操作符对左操作数执行间接访问取得指针所指向的结构,然后和点操作符一样,根据右操作数选择一个指定的结构成员。由于间接访问操作内建于箭头操作符中,所以我们不需要显式地执行间接访问操作或使用括号。箭头操作符的优先级高于&操作符的优先级

(8)对一个NULL指针进行间接访问操作是个错误。

(9)联合的声明和结构类似,但它的行为方式却和结构不同。联合的所有成员引用的是内存中的相同的位置。当想在不同的时刻把不同的东西存储于同一个位置时,就可以使用联合。

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值