C語言 指向結(jié)構(gòu)體數(shù)組的指針
當定義一個結(jié)構(gòu)體指針變量指向一個結(jié)構(gòu)體數(shù)組時,該指針指向的是結(jié)構(gòu)體數(shù)組的首地址,即第一個數(shù)組元素的地址。例如:
struct student
{
int sno;
char sname[10];
int sage;
char depmt[20];
float cscore;
};
void main()
{
struct student s[3];
struct student *ps=s;
}
指針ps指向數(shù)組s的第一個元素。也可以寫成:
struct student *ps=&s[0];
注意:
如果指針變量ps已指向某結(jié)構(gòu)數(shù)組,則ps+1指向結(jié)構(gòu)數(shù)組的下一個元素,而不是當前元素的下一個成員,如圖所示。
(++ps)->sno的過程是先使ps加1,即如果ps指向的是s[0],則現(xiàn)在指向s[1],之后再得到它所指向的數(shù)組元素s[1]的成員sno的值。
(ps++)->sno則是先得到ps所指向的成員sno的值,然后使ps+1,指向下一個數(shù)組元素。
同樣,ps++是使指針ps指向結(jié)構(gòu)體數(shù)組的下一個元素。
點擊加載更多評論>>