c語言中的結構體有些類似物件,只是不能繼承例項化,只能用於表示儲存不同的資料型別。
例如頂乙個book的「物件」:
structbook book;
其中book是結構體的標籤,book結構體的變數名,裡面的char title[50];是定義了乙個個的變數。
char title[50];表示對title變數強制生命50個字元的空間。
在 c 語言中,字串實際上是使用null字元 '\0' 終止的一維字元陣列,比如我要列印乙個hello,這一共是5個字元呢,
chargreeting="hello";//最後編譯器會自動增加乙個char greeting[4] = "hello";會提示長度太小。如果是:
char greeting[5] ="hello";這是會有異常顯示
訪問結構體的成員方法:使用.(點)來訪問,這個和物件使用屬性比較接近。
定義好結構體以後,宣告變數--->可以模擬,定義好類以後,例項化物件
structbook book1;
struct book book2;
記憶體對齊:
對齊方式一般多分為4位元組對齊和8位元組對齊,具體是那種方式,以結構體中最大的位元組長度為準,如指標是8位元組,則以八字節為準,如果只有char, int則以int長度為準4位元組,如果乙個結構體裡面有三個全是char,那麼就是1位元組對齊。
32位系統中 long 是4個位元組;64位系統中long 是8個位元組
測試一下
book.c
#include structbook book;
intmain ()
編譯執行:
gcc book.c./a.out
共用體:
共用體顧名思義,就是共用記憶體,可以在相同的位置儲存不同型別的變數。以定義乙個帶有多成員的共用體,但是任何時候只能有乙個成員帶有值。就像上廁所,可以不同的人去上,但是每次只能有乙個人。
共用體的大小有最大值決定。
測試一下:
#include union datadata;
intmain( )
結構體與共用體
1.定義乙個機構體的形式 struct 結構名 2.定義結構體變數 變數名表列 變數名表列 3.結構體成員的表示方法 結構變數名.成員名 例如 boy1.num 如果成員本身又是乙個結構則必須逐級找到最低階的成員才能使用。例如 boy1.birthday.month 4.結構體陣列 方法和結構變數相...
結構體與共用體
結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們經常要傳送的不是簡單的位元組流 char型陣列 而是多種資料組合在一起的乙個整體。其表現形式是乙個結構體。簡單來說,結構體就是用來封裝資料的。結構體的定義 struct student struct student stu st...
結構體與共用體
結構體和共用體 聯合體 是自定義的資料型別,常用於處理非數值型資料,使用如 鍊錶 佇列 樹等。1.結構體定義 結構體是用其他型別構造出來的資料型別。結構體型別如下 struct student 定義乙個結構體變數如下 struct student stu1 stu1.age 32 stu1.name...