c语言基础教程 第八章 结构

c语言基础教程 第八章 结构

ID:10807524

大小:164.00 KB

页数:25页

时间:2018-07-08

c语言基础教程 第八章 结构_第1页
c语言基础教程 第八章 结构_第2页
c语言基础教程 第八章 结构_第3页
c语言基础教程 第八章 结构_第4页
c语言基础教程 第八章 结构_第5页
资源描述:

《c语言基础教程 第八章 结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言基础教程8.1.1结构和结构变t的定义  结构是一种数目固定、类型不同的若干个变量的有序的集合。结构变量是指具有某种结构类型的变量,定义结构变量之前应该先定义某种结构类型,有了这种结构类型后,再定义具有这种结构类型的结构变量、指向结构变量的指针以及结构数组等。结构数组是指数组元素为结构变量的数组。   下面是定义结构类型即结构模式的格式;   struct<结构名)不   <结构成员说明>   };   其中,struct是关键字。(结构名)同标识符,(结构成员说明>是给出该结构模式的若干个成员,包含各个成员的名字(即变量名)和类}#o C语言中允许

2、出现的各种类型的变量都可以作结构成员,包含int型,float型,double型,char型变量,以及指针、数组、联合变量等。结构变量和指向结构变量的指针也可以作结构的成员,即结构定义是可以嵌套的。但是,某类结构的结构变量可以是另一类结构的结构成员,而不可是本身结构的结构变量。指向结构变量的指针可以是本身结构的成员。   例如:   structcard   {   intpips   charsuit;   };   这是一个结构模式,其结构名是card,它有两个成员:一个是int型变量pips,另一个是字符型变量suit.该结构是用来描述一张扑克牌的,

3、pips表示该牌的点数,而suit表示该牌的花色,其花色用字符's(黑桃),'h'(红桃).'d'(方块)''c'(梅花)来表示。任何一种结构模式都是对某种客观事物的抽象。   在结构模式已定义好后,可以用下述格式来定义具有某种结构模式的结构变量。   Srruct<结构名><结构变量名表>;   其中,<结构名>是已被定义的某种结构模式,(结构变量名表)中可有若干个结构变量、指向结构变量的指针、结构数组等。它们之间用逗号分隔。例如:   structcardc1.c2,*pc,cc[52];   其中,c1和c2是具有card结构模式的结构变量,pc是指

4、向具有card结构模式的结构变量的指针,cc是结构数组名,它有52个元素,每个元素是一个具有card结构模式的结构变量。   由此可见,定义一个结构变量可以分两步,先定义好一个结构模式,再定义具有这种结构模式的结构变量。   在名写J、可以在定义结构模式后,马上定义结构变量,其格式如下:   StTUCI<结构名>   <结构成员说明>   }   <结构变量名表>;   例如:   structcard   {   intptps};   charsuits   ).c1,c2,*pc,cc[52];   这种连起来定义与前面分开定义是等价的。如果所要定

5、义的结构变量一次性定义完,即不再出现用这种结构模式来定义新的结构变量,则可将该结构模式的结构名省略,即为无名结构。用这种结构只能一次定义所有的结构变量。例如:   struct   intpips;   charsuit;   cl.c2,*pc,cc[52];  下面举例说明结构定义的嵌套,即用另一个结构的结构变量作该结构的成员。   structdate   {   insday,month,year:   charrnon name[4];   );   struct;student   {   char*name   charsex   intol

6、d;   atructdatebirthday;   }   这里有两个结构模式date和student.在date结构中,使用了char型数组作结构成员,在student结构中,使用了char型指针作结构成员,又使用结构变量birthday作结构成员。structstudentWang,Li,Zhang,其中,Wang*Li,Zhang是3个具有student结构模式的结构变量。该变量将具有student   结构模式所具有的4个结构成员,其中有一个是结构变量作成员。   下面举一个指向自身结构的指针作结构成员的例子,这又是一种结构定义的嵌套。   st

7、ructnode   {   int   floatb.   structnode*P;   其中,P是指向该结构的结构变量的指针,它作为结构成员,又称指向自身结构的指针作该结构的成员。   最后指出,上面讲过的结构名、结构成员名和结构变量名是三个完全不同的概念,它们允许同名。例如:   streets   Inta;   char*b;   Char*s;   }s,m,*pn;   这里出现了三个S,它们分别表示不同的含义。第一次出现的s表示结构名,第二次出现的S表示某个成员名,该成员是字符指针,第三个S表示结构变量名。C语言基础教程8.1.2结构变量

8、成员的表示  结构变量成员的表示有如下两种方法。   1.结构变童

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。