013-結構體-C語言筆記

013-結構體-C語言筆記

學習目錄

1.【掌握】返回指針的函數程序員

2.【掌握】指向函數的指針數組

3.【掌握】結構體的聲明ide

4.【掌握】結構體與數組函數

5.【掌握】結構體與指針學習

6.【掌握】結構體的嵌套ui

7.【掌握】結構體與函數spa

1、返回指針的函數

指針做爲函數的返回值3d

指針是能夠做爲函數的返回值的,不能返回局部變量的指針,由於當函數執行結束後指針變量就釋放了。若是咱們真的須要返回一個指針變量,那就要保證咱們的函數執行完畢以後,指針指向的變量仍然存儲在內存之中。那咱們能夠將變量建立在堆空間中,使用malloc或者calloc申請空間。或者直接聲明爲全局變量或者用static修飾的局部變量。指針

若是函數須要返回一個字符串,咱們能夠返回(char *)類型字符串,不要使用字符數組,由於字符數組在函數執行結束後,就釋放了。而使用(char *)聲明的字符串是存儲在數據段的,直到程序執行結束纔會釋放。code

 

2、指向函數的指針

程序在運行的時候,函數是存儲在內存(代碼段)之中的,存儲函數的空間確定也是有地址的,因此咱們能夠用指針指向函數。

語法:返回值類型 (*指針名)([參數列表]);

注意:

1.函數的地址就是函數名。

2.指向函數的指針變量,本質上仍是一個變量,那麼咱們就能夠聲明、賦值給另一個同類型的指針變量使用。

無參無返回值

有參有返回值

應用場景:多種方式對字符串數組進行排序

 

3、結構體的聲明

在實際應用中,咱們一般須要由不一樣類型的數據來構成一個總體,好比學生信息這個總體能夠由姓名、年齡、身高等數據構成,這些數據都具備不一樣的數據類型,姓名能夠是字符指針類型,年齡能夠是整型,身高能夠是浮點型。C語言提供了一種構造類型來解決這個問題,由程序員本身聲明多個數據類型組成一個總體當作一種新的數據類型,這個玩意就是結構體。結構體裏的聲明的多個數據類型變量叫作結構體的成員。

聲明結構體類型語法:

struct 類型名 {

    數據類型1 成員名1;

    數據類型2 成員名2;

    ..........

};

聲明結構體變量語法:struct 類型名 變量名;

爲結構體變量中的成員賦值

使用結構體注意:

1.這個新聲明的結構體也是一個數據類型,由程序員本身聲明的新類型,因此能夠聲明這個結構體類型的變量。

2.定義在大括號之中的變量,叫新類型的成員。必需要先聲明結構體類型,再聲明結構體變量。

3.結構體類型名首字母大寫,而且結構體末尾須要加分號,

4.聲明一個結構體變量沒有初始化,成員的值是垃圾值,若是聲明的同時初始化了部分,其餘成員初始化爲0。

5.相同類型的結構體變量是能夠相互賦值的,賦值是將原結構體中的每個成員的值挨個拷貝給目標結構體變量。

6.結構體變量名,直接表明整個結構體變量。在外面學習到的全部數據類型中,只有數組名、函數名才表明他們的地址。其餘都是表明變量自己

4、結構體與數組

語法:struct 結構體類型名 數組名[長度];

 

5、結構體與指針

結構體變量也是一個變量,那麼這個結構體變量必定是有內存地址的,因此咱們就能夠搞個指針指向這個結構體變量。而後咱們就能夠經過指針間接操做結構體變量。

語法:struct 結構體類型名 *指針名;

 

6、結構體的嵌套

咱們在爲結構體寫成員的時候,發現某個成員也是一個須要多個數據組成一個總體的數據,這個時候咱們就可使用結構體嵌套。在結構體內聲明另外一個結構體類型的變量做爲成員來使用。

 

7、結構體與函數

結構體做爲函數的參數

結構體做爲函數的返回值

相關文章
相關標籤/搜索