C語言 | 結構體指針

C語言指向結構體變量的指針在C語言中,指向結構體對象的指針變量既能夠指向結構體變量,也可指向結構體數組中的元素。指針變量的基類型必須與結構體變量的類型相同。C語言中容許
(*p).num用p->num來代替
->表明一個箭頭
p->num表示p所指向的結構體變量中的num成員 C語言指向結構體數組的指針(++p)->num先使p自加1,而後獲得p指向的元素中的num成員值。(p++)->num先求的p->num的值,而後再使p自加1。 C語言用結構體變量和結構體變量的指針做函數參數用結構體變量的成員做參數,用法和用普通變量做實參是同樣的,屬於「值傳遞」方式。應當注意實參與形參的類型保持一致。用結構體變量做實參。用結構體變量做實參時,採起的也是「值傳遞」的方式,將結構體變量所佔的內存單元的內容所有按順序傳遞給形參,形參也必須是同類型的結構體變量。用指向結構體變量(或數組元素)的指針做實參,將結構體變量的地址傳給形參。 C語言使用結構體指針輸出生日#include<stdio.h> #include<string.h> struct Age {     int year;     int month;     int day; }; struct Student {     char name[20]; //姓名     struct Age birthday;  //生日 }; int main(void) {     struct Student student1; //定義結構體變量student1     struct Student *point  = NULL;  //定義一個指向Student結構體類型的指針變量point     point = &student1; //point指向結構體變量student1的首地址, 即第一個成員的地址     strcpy((*point ).name, "閆小林"); //(*point).name等價於student1.name     (*point ).birthday.year = 1989;     (*point ).birthday.month = 4;     (*point ).birthday.day = 29;     printf("姓名:%s\n", (*point ).name); //(*point).name不能寫成point     printf("生日:%d-%d-%d\n", (*point).birthday.year, (*point).birthday.month, (*point).birthday.day);     return 0; }編譯運行結果:姓名:閆小林 生日:1989-4-29 -------------------------------- Process exited after 0.04992 seconds with return value 0 請按任意鍵繼續. . .
相關文章
相關標籤/搜索