|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
结构说明有原型法和类型别名法2种定义方法。/ j. e, J4 y0 e0 ]+ h5 R& d; l
1)原型法% V$ Q' d9 B, o2 {: x) i v
(1)声明结构类型的同时定义变量名3 ], b$ c* m1 @3 s) e$ c
格式如下:
7 r: a, p1 x$ h+ V, V5 U, v[存储类说明符] struct [结构原型名]
& X3 S0 s. z6 Z* Q7 | |* I3 @ {类型说明标识符[,标识符...];
" |$ P/ B" k* a& {
% T% y! k! b( U6 D类型说明标识符[,标识符...];5 N8 n5 m; B0 |$ w
.
* n# @/ ?: X6 k: y& x0 M .
/ T& A9 }- F: T8 O1 M .; x, Y. R$ O6 l0 _8 Z
}标识符[={初值表}[,标识符[={初值表}]...]];( @. M, }) @% q
其中:存储类说明符有static、extern;结构原型名有结构名、*结构指针名。
. ?6 D0 f; Y4 p% e2 {(2)先声明结构类型再定义变量名2 ]1 b0 V) x8 ]5 {+ t" h+ l
格式如下: e# W9 l" y3 ? `% {- Y
struct 结构原型名% X+ K- l, V4 V( H' c3 {
{类型说明标识符[,标识符...];6 n7 f! l" k' g4 {( `8 k
...
4 y1 D" u) ]! p) m8 D
+ ^- q) L7 j4 n" s r& V, | }
. E, m: A' B$ n" Z, d2 l [存储类说明符] struct 结构原型名
8 i7 N! h% S; }9 n/ x# H e标识符[={初值表}[,标识符[={初值表}]...];
# h. a5 t: H5 ]其中:存储类说明符有static、extern;结构原型有结构名、*结构指针名。
; ~' Y- S' n! B9 N/ U+ x类型别名法4 @8 @/ c9 _6 q
先为结构原型名起别名,再用别名做定义说明。其格式如下:
9 U$ b3 h- k) q- N% |0 Dtypedef struct[结构原型名]
4 s% Y8 j& b! G3 F {类型说明符 标识符[,标识符...];& I% h K; a7 R {
+ W7 `. _/ i7 a; H( _( n/ h' \类型说明符 标识符[,标识符...];
, `" ?, ^' j$ ?$ O; r1 K ...$ Z$ |$ n4 Y: s
}结构别名
3 k: c6 x: p5 B" Y7 i* ^ M[存储类说明符] 结构别名 标识符[={初值表}[,标识符[={初值表}]…]];
0 L) {7 `: G8 m1 s, A+ V其中:存储类说明符有static、extern;结构原型名有结构体、*结构指针名。结构别名习惯上用大写字符。[结构原型名]可用可不用,习惯上不用。因为一般来说,别名更具特色。1 @, F% ^% y5 |; G
说明:, j q4 K0 b7 l4 h
结构由各种数据类型的成员组成。成员之间没有次序关系,访问成员不按次序,而用结构成员名。
3 U1 ~0 ^2 n1 s. a8 j; b成员可以是各种简单变量类型个符合变量类型,也可以是数组;数组的元素也可以是结构,即结构和数组可以互为嵌套。. U5 X3 ^) Q) M# F; ~9 l; u) s
只有在定义性说明时,才可以整体性地位结构赋初值。在程序中,不能用语句整体性地址给结构赋值,但可以对程序员个别第进行赋值和去存操作。& I% n2 X' P x: W
存取成员的方法有2种:结构名·成员名;结构指针名->成员名。前者是结构首地址加偏移法,后者是指针值加偏移法。只要结构指针指在结构的首地址上,二者便访问同义成员。$ Q/ N" ]0 e2 c- [
对结构只能进行2中运算:对结构成员的访问和取结构的地址(&结构名) |
|