C语言- 指针和结构数组

上传人:云*** 文档编号:358801063 上传时间:2023-08-28 格式:DOCX 页数:7 大小:174.71KB
返回 下载 相关 举报
C语言- 指针和结构数组_第1页
第1页 / 共7页
C语言- 指针和结构数组_第2页
第2页 / 共7页
C语言- 指针和结构数组_第3页
第3页 / 共7页
C语言- 指针和结构数组_第4页
第4页 / 共7页
C语言- 指针和结构数组_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《C语言- 指针和结构数组》由会员分享,可在线阅读,更多相关《C语言- 指针和结构数组(7页珍藏版)》请在金锄头文库上搜索。

1、在本教程中,我们将学习在 C 编程语言中使用带有结构体变量数组的指针。因此,在之前的教程中,我们学习了如何为结构体变量创建指针。现在让我们继续创建一个结构变量数组并通过指针变量使用它。创建结构体变量数组在下面的示例中,我们考虑student在上一个教程中创建的结构,并创建一个std大小为 3 的学生结构变量数组来保存三个学生的详细信息。/studentstructurestructstudentcharid15;charfirstname64;charlastname64;floatpoints;/studentstructurevariablestructstudentstd3;我们可以将s

2、td数组变量表示如下。为结构体创建指针变量现在我们将创建一个指针变量,它将保存学生结构变量 std 的起始地址。/studentstructurepointervariablestructstudent*ptr=NULL;/assignstdtoptrptr=std;笔记!std是一个数组变量,数组变量的名称指向内存位置,因此,我们将其分配给结构体指针变量ptr。通过指针访问结构体数组变量的每个元素为此,我们首先将指针变量设置ptr为指向std变量的起始内存位置。为此我们写了ptr = std;.然后,我们可以使用增量运算符来递增指针变量ptr+,使指针指向结构体数组变量的下一个元素,即从 s

3、tr0 到 str1。因为有三个学生,所以我们将循环三遍。因此,我们将指针变量递增两次。第一个增量将指针ptr从 std0 移动到 std1,第二个增量将指针ptr从 std1 移动到 std2。为了重置指针变量ptr以指向std我们编写的结构变量的起始内存位置ptr = std;。完整代码#includeintmain(void)/studentstructurestructstudentcharid15;charfirstname64;charlastname64;floatpoints;/studentstructurevariablestructstudentstd3;/student

4、structurepointervariablestructstudent*ptr=NULL;/othervariablesinti;/assignstdtoptrptr=std;/getdetailforuserfor(i=0;iid);printf(Enterfirstname:);scanf(%s,ptr-firstname);printf(Enterlastname:);scanf(%s,ptr-lastname);printf(EnterPoints:);scanf(%f,&ptr-points);/updatepointertopointatnextelement/ofthearr

5、aystdptr+;/resetpointerbacktothestarting/addressofstdarrayptr=std;for(i=0;iid);printf(FirstName:%s,ptr-firstname);printf(LastName:%s,ptr-lastname);printf(Points:%f,ptr-points);/updatepointertopointatnextelement/ofthearraystdptr+;return0;输出:Enterdetailofstudent#1EnterID:s01Enterfirstname:YusufEnterla

6、stname:ShakeelEnterPoints:8Enterdetailofstudent#2EnterID:s02Enterfirstname:JaneEnterlastname:DoeEnterPoints:9Enterdetailofstudent#3EnterID:s03Enterfirstname:JohnEnterlastname:DoeEnterPoints:6Detailofstudent#1ResultviastdID:s01FirstName:YusufLastName:ShakeelPoints:8.000000ResultviaptrID:s01FirstName:

7、YusufLastName:ShakeelPoints:8.000000Detailofstudent#2ResultviastdID:s02FirstName:JaneLastName:DoePoints:9.000000ResultviaptrID:s02FirstName:JaneLastName:DoePoints:9.000000Detailofstudent#3ResultviastdID:s03FirstName:JohnLastName:DoePoints:6.000000ResultviaptrID:s03FirstName:JohnLastName:DoePoints:6.

8、000000我们可以std如下表示内存中的数组变量。注意事项!每个学生数据占用 147 字节的内存。成员数据类型尺寸ID字符15字节名字符64字节姓字符64字节点漂浮4字节数组大小为 3,总共 147x3,即 441 字节分配给std数组变量。第一个元素std0获取从 1000 到 1146 的内存位置。第二个元素std1获取从 1147 到 1293 的内存位置。第三个元素std2获取从 1294 到 1440 的内存位置。我们首先让ptr指针变量指向地址 1000,这是第一个元素的起始地址std0。然后向前移动,我们增加指针ptr+,使其指向内存位置 1147,即第二个元素的起始内存位置std1。类似地,在下一次运行中,我们指向ptr内存位置 1294,即第三个元素的起始位置std2。要通过指针访问结构体的成员,我们使用-箭头运算符。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > C/C++资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号