C语言入门(15)——结构体与数据抽象

本文介绍了如何使用C语言通过结构体实现数据抽象,以复数为例,展示了如何定义和操作复数结构体,包括结构体的定义、变量初始化、复数运算函数的实现。通过数据抽象,可以方便地更改结构体的存储表示而不影响上层的复数运算,同时介绍了枚举类型在适应不同存储格式中的应用。
摘要由CSDN通过智能技术生成


大多数的计算机运算是对现实世界的模拟,如果想用计算机来模拟现实世界需要用到数据抽象的方法。所谓抽象是从实际的人、物、事和概念中抽取所关心的共同特征,,忽略非本质的细节,吧这些特征用各种概念精确的加以描述,从而使这些概念构成某种对现实世界进行描述的模型。

下面以数学中的复数为实例,通过结构体讲解数据类型的组合和抽象。至于过程抽象我们已经见过最简单的形式,就是把一组语句用一个函数名封装起来,当作一个整体使用。

现在我们用C语言表示一个复数。如果从直角座标系来看,复数由实部和虚部组成,如果从极座标系来看,复数由模和辐角组成,两种座标系可以相互转换。如下图所示

比如用实部和虚部表示一个复数,我们可以采用两个double型组成的结构体:

 

struct complex_struct {
         doublex, y;
};

 

这样定义了complex_struct这个标识符,既然是标识符,那么它的命名规则就和变量一样,但它不表示一个变量,而表示一个类型,struct complex_struct { double x, y; }整个可以看作一个类型名,就像int或double一样,只不过它是一个复合类型,如果用这个类型名来定义变量,可以这样写:

 

struct complex_struct {
         doublex, y;
} z1, z2;

 

这样z1和z2就是两个变量名,变量定义后面要带个;号。这点一定要注意,结构体定义后面少;号是初学者很常犯的错误。不管是用上面两种形式的哪一种形式定义了complex_struct这个标识符,以后都可以直接用struct complex_struct来代替类型名了。例如可以这样定义另外两个复数变量:

 

struct complex_struct z3, z4;

 

结构体变量也可以在定义时初始化,例如:

struct complex_struct z = { 3.0, 4.0 };

 

复数加法的运算法则是实部与实部相加,虚部与虚部相加。复数相加运算的函数代码如下:

struct complex_struct add_complex(structcomplex_struct z1, struct compl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值