【C語言的學習】第十三回合:結構體大集合

第十三回合:結構體大集合

A: 結構體:是數據結構類型,把有內在聯繫的不同類型的數據統一成一個整體,使它們相互關聯。又是變量的集合,可以單獨使用其的成員。

  定義:

       struct 結構體名 

  類型標識符  成員名1;

  類型標識符  成員名2;

    ……

;     //分號一定不能省

PS:  

(1)   結構定義並不預留內存,結構體變量的定義才引起存儲分配

(2)   結構體成員的數據類型可以是C語言的基本數據類型,也可以是數組和指針類型。還可以是自定義類型,成員的排列不分先後次序

(3)   結構體名是合法命名的標識符

(4)   結構定義僅描述了一個結構的形式。如果要在程序裏使用結構,需要聲明結構變量。

B: 結構體的輸入輸出

(a)      結構體變量不能整體輸入輸出,要通過成員運算符“.”,逐個訪問其成員

如:

聲明:

   struct  date             

 {     int year; 

       int  month;

       int  day;

  };

struct date  birth

輸出的格式:

正確的輸出格式:

printf("%d, %d, %d"birth.year, birth.month, birth.day)

 

下面的方法是錯誤的:

printf("%d,%d, %d"birth)

C:結構體變量的初始化

(a)      一般形式:

結構體類型名  結構體變量= {初始表};

(b)      

1)間接初始化

strict  ST    

{    

int   num ;

     char name[20];

     char  sex;

     float score;

     struct date birthday;

 };

下面在main()中初始化

Struct STstudent  ={102,  "Zhangsan",  'M',  85,{1980,9,20}};

2)直接在結構體定義時初始化

   strict ST      

{    

int   num ;

     char name[20];

     char  sex;

     float score;

     struct date birthday;

 } student ={102,  "Zhangsan",  'M',  85,{1980,9,20} } ;

D結構體數組和結構體指針的定義、初始化跟上面的都一樣,沒什麼不同。只不過結構體指針的訪問除了用運算符“.”()訪問,還可用指向運算符“->”訪問(位置還是和用‘.’訪問的位置一樣)。


(複習做的筆記,還在整理中。。。。)

發佈了210 篇原創文章 · 獲贊 23 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章