EDA365电子论坛网

标题: 结构说明 [打印本页]

作者: ygcgsa    时间: 2016-7-13 15:07
标题: 结构说明
结构说明有原型法和类型别名法2种定义方法。8 ^5 E. o& c9 w% e- g! n: [
1)原型法4 U) p: j1 h; }, K+ C) H( H% U, T
(1)声明结构类型的同时定义变量名
4 d9 G0 {- P7 z- r/ x格式如下:
) C0 W$ t  d4 ]  F, }5 |[存储类说明符]  struct  [结构原型名]
: f! j' I9 C8 @" A) V& ?/ h- J. I                     {类型说明标识符[,标识符...];
1 O9 S4 k; b4 L" p; D9 t4 z' Y9 W
( L# L  y9 I* `5 ^! P类型说明标识符[,标识符...];7 O' d. D/ a, q1 r: }  o6 k1 Z
                                          .4 H5 Y3 ?' k: F) {* Z- L4 d
                                          .( ~2 E! O3 ^9 \$ k2 l" \
                                          .
7 ^7 F* \* c* K  p                     }标识符[={初值表}[,标识符[={初值表}]...]];
. d( \! Z5 _' k6 b其中:存储类说明符有static、extern;结构原型名有结构名、*结构指针名。
# ?+ C- O7 @0 O  T" e  R(2)先声明结构类型再定义变量名+ d) ]: y5 X5 R& N6 `7 y7 d% t% E% Q1 r
格式如下:
$ w2 ^# [, S( F5 l8 xstruct 结构原型名! f. _' W: F1 }. n6 C
       {类型说明标识符[,标识符...];( @% k( {+ ^; `6 e) S3 Q% ^
              ...1 K) n1 d% e: c/ K
      
. F8 m0 m& F: f$ ~; S8 Q; O       }3 G0 o8 _" Y5 Q0 d
       [存储类说明符]    struct 结构原型名+ z$ V" B5 h: l# M+ {, l6 W+ C* O
标识符[={初值表}[,标识符[={初值表}]...];
& h7 u$ q2 q9 j/ Y; K2 \" b* o其中:存储类说明符有static、extern;结构原型有结构名、*结构指针名。
% L( Q' M% w4 c8 L$ P* R类型别名法
* t; n& c# V* U0 q3 l/ j1 }先为结构原型名起别名,再用别名做定义说明。其格式如下:
8 m, B6 h0 h, Z# b* K- l' x& ?$ qtypedef    struct[结构原型名]! e! p* F) u! W+ N- a9 _  a  M: L
                            {类型说明符 标识符[,标识符...];. U8 h" U6 V, N2 D6 H& v

' t) |3 {! F) E4 g; b类型说明符 标识符[,标识符...];+ Y! ]' a# C) \# a1 S
                             ...* o" J6 z6 `; ^- t
                            }结构别名
3 W$ f4 f$ _' w5 B[存储类说明符]  结构别名 标识符[={初值表}[,标识符[={初值表}]…]];! m- T( A6 h3 N) M, s. i
其中:存储类说明符有static、extern;结构原型名有结构体、*结构指针名。结构别名习惯上用大写字符。[结构原型名]可用可不用,习惯上不用。因为一般来说,别名更具特色。
; n# o, M7 i, H- `说明:
5 Y: t1 M! P5 v- p结构由各种数据类型的成员组成。成员之间没有次序关系,访问成员不按次序,而用结构成员名。+ `1 O6 ^+ B8 @* G
成员可以是各种简单变量类型个符合变量类型,也可以是数组;数组的元素也可以是结构,即结构和数组可以互为嵌套。
% o  p" ^1 p! Y% b只有在定义性说明时,才可以整体性地位结构赋初值。在程序中,不能用语句整体性地址给结构赋值,但可以对程序员个别第进行赋值和去存操作。# l/ t' s8 [' {
存取成员的方法有2种:结构名·成员名;结构指针名->成员名。前者是结构首地址加偏移法,后者是指针值加偏移法。只要结构指针指在结构的首地址上,二者便访问同义成员。
$ Z* {1 }+ ^! G+ P& [& r+ j对结构只能进行2中运算:对结构成员的访问和取结构的地址(&结构名)
作者: Titianyeer    时间: 2016-7-14 14:17
支持楼主!谢谢分享!
( M/ z0 u* V! W" r
作者: 10929390    时间: 2016-7-14 14:48
感谢楼主分享!!!3 d3 ^9 X6 [5 u- X: z





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2