結構基礎:
C語言提供我們一個方便的東西,叫"struct",它能讓我們建立一種自定的資料型態。
 |
基本款 |
像下面這個,我們有一個資料型態叫作My_Struct,它裡面有一個整數n,一個浮點數f,還能有陣列s。
結構宣告:
我們弄好了上面的東西後,不能直接把My_Struct拿來當變數用,因為它只是個模板,就像你不會直接拿 int 來當變數,而是要先宣告一個變數,它的型態是 int。
 |
這樣就能把那個 test 拿來用了 |
如果你覺得每次要宣告一個變數都要打那麼長,很麻煩的話,C有提供一個叫 "typedef" 的東西,能把一種資料型態的名字改成我們指定的樣子。
 |
typedef 很方便 |
結構的存取:
我們有了變數 test,能拿它來做事了,如果我們要指派值給裡面的某個變數,可以這樣
 |
就是 "變數名稱" 點 "結構裡的變數名稱" |
結構也可以宣告成陣列
 |
裡面的成員也要用"點"來存取 |
結構的指標:
跟所有其他的資料型態一樣,我們也能宣告結構的指標。
 |
結構名稱 * 指標名字 |
如果我們想用結構的指標來存取"指標所指向位置的值"的話,我們需要用到 -> (一個減號再加大於符號吧?)
 |
範例 |
 |
範例輸出 |
用圖片來說明整個流程,如下:
1、第16、17行
 |
設變數 |
2、第19、20行
 |
給值 |
3、第22、23行
 |
把指標指向A的記憶體位置,之後就可以用 ptr->n 來取得變數A裡的n值,用 ptr->f 來取得變數A裡的f值 |
4、第25、26行
 |
同上,不過這次指標指向變數B |
比較:
 |
一般資料型態的指標使用 |
 |
結構指標的使用 |
結語:
我只有講到會用在解題的方法(語法),結構還有很多東西可以講~~如果有錯請指正。
沒有留言:
張貼留言