当前位置: 首页 > news >正文

通辽市建设委员会网站百度平台

通辽市建设委员会网站,百度平台,公司企业文化展厅,杭州建设信用网官网C 中的结构体 C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。 结构体中的数据成员可以是基本数据类型(如 int、float、char 等),也可以…

C 中的结构体

C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。

结构体中的数据成员可以是基本数据类型(如 int、float、char 等),也可以是其他结构体类型、指针类型等。

结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:

  • Title
  • Author
  • Subject
  • Book ID

定义结构

结构体定义由关键字 struct 和结构体名组成,结构体名可以根据需要自行定义。

struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

struct tag { member-listmember-list member-list  ...
} variable-list ;

tag 是结构体标签。

member-list 是标准的变量定义,比如 int i; 或者 float f;,或者其他有效的变量定义。

variable-list 结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。下面是声明 Book 结构的方式:

struct Books
{char  title[50];char  author[50];char  subject[100];int   book_id;
} book;

在上面的声明中,第一个和第二声明被编译器当作两个完全不同的类型,即使他们的成员列表是一样的,如果令 t3=&s1,则是非法的。

结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。

结构体变量的初始化

和其它类型变量一样,对结构体变量可以在定义时指定初始值。

访问结构成员

为了访问结构的成员,我们使用成员访问运算符(.)。成员访问运算符是结构变量名称和我们要访问的结构成员之间的一个句号。您可以使用 struct 关键字来定义结构类型的变量。

下面我们来举一个例子看看结构体的定义与使用。我们知道平面上点的是由其在x轴上的坐标和y轴上的坐标而确定的,所以我们在程序中想要描述平面上的一个点,就需要定义这个点的两个属性变量x和y,例如:

在这里插入图片描述

float point0_x = 1;
float point0_y = 3;
float point1_x = 2;
float point1_y = 4;

而对于这样的坐标点,一个点相关的变量中x和y始终是成对出现的,也就是说:对于平面内点的坐标,一定是有两个属性,x和y。于是我们就可以将这个两个属性(两个变量)定义成一个结构体,名字就叫作平面内点的坐标变量,简称点:

struct point
{float x;float y;
};

这样我们就有了一个叫作“点类型”的变量类型,它表示:只要定义了这种变量类型,这个类型的变量就会有两个属性(x和y)。接下来我们就可以使用这种类型来定义两个点p0和p1,

struct point p0;
struct point p1;
p0.x = 1;
p0.y = 2;
p1.x = 3;
p1.y = 1;

结构体嵌套

上面我们定义了平面上的两个点的坐标,接下来我们就有了平面上两个点的坐标,有了点,我们就可以根据点的结构再定义一种新的变量类型,叫作矩形:struct rect。

在这里插入图片描述
我们来定义一个矩形的结构体,这个矩形结构体中嵌套了点结构体,而使用时与正常结构体使用一致。先来看看这个例子,并编写一个函数用于计算矩形的面积面积:

#include <stdio.h>
#include <math.h>
struct point
{float x;float y;
};
struct rect
{struct point p0;struct point p1;
};
float area_of_rect(struct rect r)
{return fabs(r.p1.x - r.p0.x) * fabs(r.p1.y - r.p0.y);
}
int main(int argc, char *argv[])
{struct rect r;r.p0.x = 1;r.p0.y = 2;r.p1.x = 3;r.p1.y = 1;printf("%f\n", area_of_rect(r));return 0;
}

简化定义

当然,在这里我们定义的结构体变量,并将其做为了一个函数的输入参数。关于结构体做为函数参数和函数返回值的问题,我们将在下一节中学习。另外,我们在定义结构体时,也可以直接在定义之后定义这个结构体类型的变量:

typedef struct student
{int id;int age;char name[10];
} zhangs,lis,wangw;

这样就定义了一个叫学生的结构体类型,并在其后直接定义空虚这个学生类型的3个变量,zhangs,lis,wangw。

另外,我们在使用结构体变量时,总是要使用struct name var这样的形式,多多少少有一些麻烦。为了使程序更加简洁,我们可以使用typedef关键字来来对这个结构体类型重新定义。例如:

typedef struct student
{int id;int age;char name[10];
} stu;
stu s0;
stu s1;
stu s2;

这样就定义了一种结构体叫struct student,而通过typedef将其重新定义为stu类型,之后我们就可以 通过stu来定义这种结构体类型变量。在程序中使用stu就表示struct stuent,这样表示就简单很多,但是请注意:如果使用了typedef结构体定义中大括号结构后的名称就是这个结构体的新名字,而如果不使用typedef结构体定义中的大括号结束后面的文字表示定义的是这个结构体的变量。

http://www.yidumall.com/news/97888.html

相关文章:

  • 网站搭建就来徐州百都网络非常好百度搜索引擎推广步骤
  • 网站设计基础教程html5+css3源代码网络营销策划推广公司
  • javaweb源码分享网站朋友圈广告推广代理
  • 做下载网站用阿里云的什么产品百度ai智能写作工具
  • 做网站推广选哪家网站需要改进的地方
  • 搜索引擎网站推广可以自己做吗网站seo诊断工具
  • 山西网络推广专业郑州seo外包平台
  • 酒店建筑设计搜索排名优化公司
  • 玉环做网站苏州百度推广服务中心
  • 手机域名做网站中国谁第一家谷歌网站推广
  • 做影视网站有什么风险黑锋网seo
  • 什么事网站建设关键词搜索方法
  • facebook官方注册网站关键词优化分析工具
  • 网站建立数据库连接时出错关键词优化快速
  • 做情网站推广平台的方法
  • 工作号做文案素材的网站淘宝seo是什么意思
  • 北京哪家公司做网站好百度seo排名优化公司推荐
  • 跨境电商怎么搞论坛seo教程
  • 贵大网站建设多少钱杭州网站建设网页制作
  • ps软件下载电脑版seo在线诊断工具
  • 泰州网站建设报价海外网络推广平台
  • 域名解析 网站友情链接
  • 安徽工程建设信息网新网站什么是搜索引擎营销?
  • 眼镜东莞网站建设青岛网站seo服务
  • 做网站维护怎么找客户seo软件代理
  • 肯德基网站是哪家公司做的线下宣传渠道和宣传方式
  • 自己做网站的流程视频知乎seo优化
  • 招聘网站开发时间手机怎么建网站
  • 龙华观澜网站建设网络营销与传统营销的区别
  • 校园网站安全建设方案安徽网站设计