C語言什麼是結構體?初步學習C語言結構體三部曲
閱讀須知:
結構體部分內容,涉及結構體定義,結構體變數,結構體指標,結構體陣列,更多內容敬請關注。
結構體是由若干個"成員"組成的,每一個成員要有成員名稱和型別,成員可以是基本資料型別或者一個結構體。一旦定義結構體型別,使用它的方式和其他型別一樣,可以宣告這個結構體的物件、指標和陣列。下面我們先來定義一個描述歌曲的結構體:
上面的song就是一個機構體,它包含有4個成員,成員分別有不同的資料型別,通過上面的例子我們能總結出定義結構的一般格式:struct 結構體名稱 {成員列表};
struct是一個C語言的關鍵字,是定義結構體所必須的。[結構體名稱]就是上面的song,有時候可以省略。成員列表必須用花括號{}括起來,最後是分號。
想要使用結構體,就必須先宣告結構體變數,如果你想說在上個練習中的song是變數的話,那你就大錯特錯了。song是我們定義的結構體名稱,就想int一樣,只不過song是我們定義的,而int是C語言定義好的。我們可以使用2種方式來宣告結構體變數:
定義好結構體後再宣告變數
在定義機構體時就宣告變數
當我們使用這種方式宣告結構體變數時,結構體名稱song可以省略不寫。 如果我們想使用結構體song1中的成員時:song1.title或者song1->title (->:指標只想運算子)
小編給大家推薦一個學習氛圍超好的地方,C/C++交流企鵝裙:870963251!適合在校大學生,小白,想轉行,想通過這個找工作的加入。裙裡有大量學習資料,有大神解答交流問題,每晚都有免費的直播課程
當我們有很多個結構體變數時,我們可以使用結構體陣列,比如我們有3首歌的時候:
或者
結構體指標當然我們也可以先定義結構體陣列,然後再對它們進行賦值。
結構體指標顧名思義就是指向結構體的指標,具體的這個指標會指向該結構體的某個變數。宣告一個結構體指標變數的形式:
struct 結構名 *結構指標變數名
比如我們宣告一個指向song結構體的指標變數:
struct song *ps;struct song song1, song2;
給指標ps賦值則是:
ps = &song1;
當然我們也可以在宣告指標時就給ps賦值。我們可以通過指標來使用song1中的成員:(*ps).title或者ps->title
注意
指標ps只能指向結構體變數song1或song2,但是不能指向結構體名song
使用"."和"->"時的不同方式。
結構體指標不但能指向結構體變數,還可以指向結構體陣列,比如上個練習中我們使用的songs陣列:ps = songs,這代表指標ps指向songs陣列的首地址