C 结构和其他数据形式

关键概念

表示一个编程问题所需的信息通常要比一个或多个数字更为复杂。程序可能会处理具有多个属性的实体或实体集合。C的结构使您可以在一个单独的单元中收集这些信息。这对组织一个程序非常游泳,因为这样可以把所有相关的信息存储在一个地方,而不是存储在分散的多个变量中。

在设计一个结构时,开发一个与之配套的函数包通常是很有用的。

联合的生命看起来很像结构的声明,然而,联合的成员共享同一个存储空间,并且在一个时间只有一个成员可以存在于联合中。实质上,联合允许您创建用来保存一个类型不定的值的变量。

enum工具提供了定义符号常量的一种方法,typedef工具提供了为基本类型或派生类型创建新标识符的一种方法。指向函数的指针提供了告诉函数应该使用哪个函数的一种方法。

总结

结构(struct)

C的结构提供了在同一个数据对象中存储几个通常是不同类型的数据项的方法。可以使用标记来代表一个具体的结构模板,并声明该结构类型的变量。成员点(.)运算符使你可以通过使用结构模板中的标签来访问结构的各个成员。

如果有一个指向结构的指针,可以使用该指针以及间接运算符(->)替代名字和点运算符来访问结构的各个成员。要得到结构的地址,可以使用运算符&。与数组不同,结构名不是结构的地址。

传统上,和结构有关的函数使用指向结构的指针作为参数。

联合(union)

联合使用与结构相同的语法。但是,联合成员共享一个公共的存储空间。联合存储其选项列表中的一个单独的数据项类型,而不像结构那样同时存储多个数据类型。也就是说,如果一个结构可以保存一个int型,一个double型以及一个char型数据,那么相应的联合能保存一个int型,或者一个double型,或者一个char型的数据。

枚举(enum)

枚举使得您可以创建一组代表整形常量的符号(枚举常量),也允许您定义关联的枚举类型。

typedf

typedf工具可以用来建立C标准的类型的别名或者速记表示

指向函数的指针

一个函数的名称给出该函数的地址。这个指向函数的地址可以作为参数被传递给使用该函数的另一个函数。如果pdf是一个函数指针,并且已经给它复制了一个特定函数的地址,可以用两种方式来调用该函数。

#include <math.h>

...
double (*pdf)(double);
double x;

x = (*pdf)(1.2);
x = pdf(1.2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值