|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
结构说明有原型法和类型别名法2种定义方法。
# v( Q- ?& F/ ^6 @7 y1)原型法
0 G4 p/ {; |$ i9 U/ _9 V(1)声明结构类型的同时定义变量名5 B/ C, ]) `6 h y
格式如下:
2 j; ?0 D/ a' g; p0 d) y5 {& R6 F3 K[存储类说明符] struct [结构原型名]
( |, h/ H4 g! ]0 Z5 K {类型说明标识符[,标识符...];
+ [" Y H5 J* r; v( ~5 W0 l& l7 O: j8 Q; B8 ^' h$ R5 B Z' d# B; X
类型说明标识符[,标识符...];
* T) F! [, U" Z) x5 O .. t. T# M/ I" X: I5 S
.1 z( p Z$ @" @/ @7 A/ Z- q/ J
.1 m' U# b6 g1 \) q" ^+ n) }- K
}标识符[={初值表}[,标识符[={初值表}]...]];! U c5 Y; [- [5 u% O
其中:存储类说明符有static、extern;结构原型名有结构名、*结构指针名。
* h1 P6 @* |6 b: @+ k7 ~(2)先声明结构类型再定义变量名
) `+ O2 v' h0 G9 N2 B6 g& P1 m格式如下:
' D/ {5 ^) ~7 s) ^+ F* b* {$ S% dstruct 结构原型名
2 U Y6 e* v3 I; \ {类型说明标识符[,标识符...];
1 x, F# l* T" D7 \. g* w6 e ...
. @: H& p8 n X9 e3 d" W
7 M% L0 O l: @7 t+ { }& b# U) X9 _! ^4 z/ [- y% _
[存储类说明符] struct 结构原型名
# w5 a* J4 q- R标识符[={初值表}[,标识符[={初值表}]...];
6 q _' D3 m! c8 L; g/ U其中:存储类说明符有static、extern;结构原型有结构名、*结构指针名。
" B& p$ I x6 R类型别名法
, I$ C( s4 S* A( b先为结构原型名起别名,再用别名做定义说明。其格式如下:
: U, `' w, w2 o0 H* Gtypedef struct[结构原型名]/ A, m! @# g9 H% L
{类型说明符 标识符[,标识符...];: E \% m7 X3 o& }& K& o' U
) n) y" J1 Y8 S/ U# \3 I# i
类型说明符 标识符[,标识符...];
. g, G/ k1 O( Q: u% v3 s& u8 r ...+ j" Y1 w; u; I7 Z' Q( p0 [& X0 K
}结构别名
5 v# x& y! A- p' I4 }[存储类说明符] 结构别名 标识符[={初值表}[,标识符[={初值表}]…]];
# X {* S7 a5 O, J+ m& ^其中:存储类说明符有static、extern;结构原型名有结构体、*结构指针名。结构别名习惯上用大写字符。[结构原型名]可用可不用,习惯上不用。因为一般来说,别名更具特色。* b8 O- h9 L5 ~" z
说明:: q* T' A3 f5 H; Q& g
结构由各种数据类型的成员组成。成员之间没有次序关系,访问成员不按次序,而用结构成员名。
, N! ^) |" N! _* ^/ r" M/ F成员可以是各种简单变量类型个符合变量类型,也可以是数组;数组的元素也可以是结构,即结构和数组可以互为嵌套。
: \3 ^" u, x. i' ]4 G! P% |只有在定义性说明时,才可以整体性地位结构赋初值。在程序中,不能用语句整体性地址给结构赋值,但可以对程序员个别第进行赋值和去存操作。! k6 R+ N0 U# q8 }# c
存取成员的方法有2种:结构名·成员名;结构指针名->成员名。前者是结构首地址加偏移法,后者是指针值加偏移法。只要结构指针指在结构的首地址上,二者便访问同义成员。
! e0 m" L# v% f) K5 z# x* t1 V4 A* w对结构只能进行2中运算:对结构成员的访问和取结构的地址(&结构名) |
|