考试网 >> IT认证 >> 等级 >> 等级动态 >> C教程-----指针、结构、联合和枚举(3)

C教程-----指针、结构、联合和枚举(3)

发布时间:2006-07-25 11:59     点击:
分页:[1] 2 3  下一页

二、结构指针

结构指针是指向结构的指针。它由一个加在结构变量名前的"*" 操作符来定

义, 例如用前面已说明的结构定义一个结构指针如下:

struct string{

char name[8];

char sex[2];

int age;

char addr[40];

}*student;

也可省略结构指针名只作结构说明, 然后再用下面的语句定义结构指针。

struct string *student;

使用结构指针对结构成员的访问, 与结构变量对结构成员的访问在表达方式

上有所不同。结构指针对结构成员的访问表示为:

结构指针名->结构成员

其中"->"是两个符号"-"和">"的组合, 好象一个箭头指向结构成员。例如要

给上面定义的结构中name和age赋值, 可以用下面语句:

strcpy(student->name, "Lu G.C");

student->age=18;

实际上, student->name就是(*student).name的缩写形式。

需要指出的是结构指针是指向结构的一个指针, 即结构中第一个成员的首地

址, 因此在使用之前应该对结构指针初始化, 即分配整个结构长度的字节空间,

这可用下面函数完成, 仍以上例来说明如下:

student=(struct string*)malloc(size of (struct string));

size of (struct string)自动求取string结构的字节长度, malloc() 函数

定义了一个大小为结构长度的内存区域, 然后将其诈地址作为结构指针返回。

注意:

1. 结构作为一种数据类型, 因此定义的结构变量或结构指针变量同样有局

部变量和全程变量, 视定义的位置而定。

2. 结构变量名不是指向该结构的地址, 这与数组名的含义不同, 因此若需

要求结构中第一个成员的首地址应该是&[结构变量名]。

4. 结构的复杂形式

一、嵌套结构

嵌套结构是指在一个结构成员中可以包括其它一个结构, Turbo C 允许这种

嵌套。

例如: 下面是一个有嵌套的结构
分页:[1] 2 3  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有