C語言 指向結構體數組的指針


當結構體指針變量指向一個結構體變量數組的時候,此時指針變量的值就是結構體數組的首地址

關於如何定義結構體數組,和將結構體指針指向結構體變量數組,不是重點。

重點是,明白結構體指針的是怎么移動的, 我個人理解 指針==地址 用指針操作的就是地址

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的值

它們相等! 所以我”想當然“ 的是對噠

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM