位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 指向結(jié)構(gòu)體數(shù)組的指針

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-02

當(dāng)定義一個(gè)結(jié)構(gòu)體指針變量指向一個(gè)結(jié)構(gòu)體數(shù)組時(shí),該指針指向的是結(jié)構(gòu)體數(shù)組的首地址,即第一個(gè)數(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的第一個(gè)元素。也可以寫(xiě)成:

    struct student *ps=&s[0];

注意:

如果指針變量ps已指向某結(jié)構(gòu)數(shù)組,則ps+1指向結(jié)構(gòu)數(shù)組的下一個(gè)元素,而不是當(dāng)前元素的下一個(gè)成員,如圖所示。

image.png

(++ps)->sno的過(guò)程是先使ps加1,即如果ps指向的是s[0],則現(xiàn)在指向s[1],之后再得到它所指向的數(shù)組元素s[1]的成員sno的值。

(ps++)->sno則是先得到ps所指向的成員sno的值,然后使ps+1,指向下一個(gè)數(shù)組元素。

同樣,ps++是使指針ps指向結(jié)構(gòu)體數(shù)組的下一個(gè)元素。


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部