|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
结构说明有原型法和类型别名法2种定义方法。1 B) ^, S( l: l
1)原型法
% J% V, r1 J6 A6 D" H' a. J& K(1)声明结构类型的同时定义变量名
1 V" Q ~5 k9 L格式如下:8 k* e8 {2 i" E, A8 Z& M
[存储类说明符] struct [结构原型名]& p! z2 J, Q6 i$ ?, `
{类型说明标识符[,标识符...];* h2 H/ F5 } k1 L- E) d' Z: W8 q
/ P: s+ U3 b. l# [4 U6 U$ Q' i' y
类型说明标识符[,标识符...];- n; b3 P% j1 N+ \
.
* l5 W- I- p3 K0 b1 T+ ^ .
) `: d* b9 U/ E! m5 f$ p .4 F* y: S# P. ]; }" Q
}标识符[={初值表}[,标识符[={初值表}]...]];4 ?6 |& ^; q8 A6 B
其中:存储类说明符有static、extern;结构原型名有结构名、*结构指针名。, b0 F% o3 x! j0 l4 o0 f
(2)先声明结构类型再定义变量名
/ M; S5 h% a D; H# U0 T7 G7 \格式如下:
- O, u, n1 x0 m5 Xstruct 结构原型名5 |: x7 l8 @1 _$ W
{类型说明标识符[,标识符...];
* o- y+ z" T8 R5 i; z" y. r ...
* [, G2 I; S, ]
, g! p4 {0 P/ @4 J x3 W0 [$ N }, Q' S! M3 F3 n1 o1 W2 D4 k( I
[存储类说明符] struct 结构原型名
+ s9 _$ S3 S/ e标识符[={初值表}[,标识符[={初值表}]...];- e+ F: Y5 G5 L
其中:存储类说明符有static、extern;结构原型有结构名、*结构指针名。
* y5 F- d/ k- s& u8 d类型别名法# ]& i4 d: u( L3 H' A+ Q
先为结构原型名起别名,再用别名做定义说明。其格式如下:
8 v- \3 B n+ o8 \( J3 \9 ctypedef struct[结构原型名]
0 K9 z7 j. b& J: \ {类型说明符 标识符[,标识符...];6 [% {+ m Y+ v* X
5 a8 \& v$ p w1 r4 l
类型说明符 标识符[,标识符...];$ O$ Y; G4 D! F" V
...
3 S0 W+ y3 ?& T) o }结构别名8 ^. B( g5 }9 W
[存储类说明符] 结构别名 标识符[={初值表}[,标识符[={初值表}]…]];
- o" d3 Q: ]9 A7 F" s: G其中:存储类说明符有static、extern;结构原型名有结构体、*结构指针名。结构别名习惯上用大写字符。[结构原型名]可用可不用,习惯上不用。因为一般来说,别名更具特色。# A& R4 b7 O) k6 Y
说明:
6 B+ V P; g- w( E' W# m2 c, w结构由各种数据类型的成员组成。成员之间没有次序关系,访问成员不按次序,而用结构成员名。 G0 J) C& s' z1 P
成员可以是各种简单变量类型个符合变量类型,也可以是数组;数组的元素也可以是结构,即结构和数组可以互为嵌套。
5 q0 _- q/ l% F3 ~只有在定义性说明时,才可以整体性地位结构赋初值。在程序中,不能用语句整体性地址给结构赋值,但可以对程序员个别第进行赋值和去存操作。' O& \& F' ]" Y8 a+ o% |
存取成员的方法有2种:结构名·成员名;结构指针名->成员名。前者是结构首地址加偏移法,后者是指针值加偏移法。只要结构指针指在结构的首地址上,二者便访问同义成员。
. |0 \$ ?4 {9 C$ S$ Y对结构只能进行2中运算:对结构成员的访问和取结构的地址(&结构名) |
|