文件名称:结构体指针-复高斯分布的数学基础理论
文件大小:6.48MB
文件格式:PDF
更新时间:2024-06-28 07:07:15
嵌入式 Linux C
(2)结构体指针 结构体指针是指向结构体的指针。它由一个加在结构体变量名前的“*”操作符来定义, 例如用前面已说明的结构体定义一个结构体指针如下: struct string{ char name[8]; char sex[2]; int age; char addr[40]; }*student; 当然也可省略结构体指针名,只作结构体说明,然后再用下面的语句定义结构体指针。 struct string *student; 使用结构体指针对结构体成员的访问,与结构体变量对结构体成员的访问在表达方式上 有所不同。结构体指针对结构体成员的访问表示为: 结构体指针名->结构体成员 例如: student->name 实际上,student->name 就是(*student).name 的缩写形式。 需要指出的是结构体指针是指向结构体的一个指针,即结构体中第一个成员的首地址, 因此在使用之前应该对结构体指针初始化,即分配整个结构体长度的字节空间,这可用下面 函数完成,仍以上例来说明如下: student=(struct string*)malloc(size of (struct string)); 注意 结构体变量名不是指向该结构体的地址,这与数组名的含义不同,结构体中第一个成员的首地 址是&[结构体变量名]。 4.结构体嵌套 嵌套结构体是指在一个结构体成员中可以包括其他一个结构体,C 语言中允许这种嵌套。 例如:下面是一个有嵌套的结构体。 struct string{ char name[8]; int age; struct addr address; }student; 其中,addr 为另一个结构体的结构体名,但必须在使用该结构体之前要先进行说明,即: struct addr{ char city[20]; unsigned lon zipcode; char tel[14]; }; 如果要给 student 结构体中成员 address 结构体中的 zipcode 赋值,则可写成: student.address.zipcode=200001;