當結構體指針變量指向一個結構體變量數組的時候,此時指針變量的值就是結構體數組的首地址數組
關於如何定義結構體數組,和將結構體指針指向結構體變量數組,不是重點。字體
重點是,明白結構體指針的是怎麼移動的, 我我的理解 指針==地址 用指針操做的就是地址spa
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++後面還有一句控制着指針的移動,循環完一次,指針將指向下一個地址中的成員code
大概圖示是這樣的:沒好好寫:) 因此字體..呵呵呵 湊合看把:)orm
程序運行結果:blog
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
io
輸出&student[3]的值form
輸出pStruct的值class
它們相等! 因此我」想固然「 的是對噠