首页 > 编程语言 > 详细

C语言 指向结构体数组的指针

时间:2016-02-27 16:17:36      阅读:96      评论:0      收藏:0      [点我收藏+]

当结构体指针变量指向一个结构体变量数组的时候,此时指针变量的值就是结构体数组的首地址

关于如何定义结构体数组,和将结构体指针指向结构体变量数组,不是重点。

重点是,明白结构体指针的是怎么移动的, 我个人理解 指针==地址 用指针操作的就是地址

demo:

 1 # include <stdio.h>
 2 # include <stdlib.h>
 3 
 4 
 5 //创建一个结构体
 6 struct Student
 7 {
 8     char cName[20];
 9     int iNumber;
10     char cSex;
11     int iGrade;
12 
13 }student[3]=
14 {
15     {"瑶瑶",908,W,2017},
16     {"yy",606,M,2017},
17     {"500days",500,Y,2017},
18 };
19 
20 
21 int main ()
22 {
23     struct Student *pStruct;
24     int index;
25     pStruct = student;
26     for(index=0; index<3; index++,pStruct++)
27     {
28         printf("NO%d student‘s information\n",index+1);
29         printf("Name:%s\nNumber:%d\nSex:%c\nGrade:%d\n",pStruct->cName,pStruct->iNumber,pStruct->cSex,pStruct->iGrade);
30     }
31     printf("pStruct:%d\n&student[2]:%d\n",pStruct,&student[3]);        
32     return 0;
33 }

 

第26行,index++后面还有一句控制着指针的移动,循环完一次,指针将指向下一个地址中的成员

大概图示是这样的:没好好写:) 所以字体..呵呵呵 凑合看把:)

 技术分享

程序运行结果:

NO1 student‘s information
Name:瑶瑶
Number:908
Sex:W
Grade:2017
NO2 student‘s information
Name:yy
Number:606
Sex:M
Grade:2017
NO3 student‘s information
Name:500days
Number:500
Sex:Y
Grade:2017
pStruct:6294176
&student[2]:6294176

输出&student[3]的值

输出pStruct的值

它们相等! 所以我”想当然“ 的是对哒

 

C语言 指向结构体数组的指针

原文:http://www.cnblogs.com/dire/p/5223006.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!