結構體的學習

2021-08-14 01:34:43 字數 1561 閱讀 1758

結構體的學習

一、結構體。

(1)定義結構體和變數:struct studentstu1;

struct stu2,stu3[2] = ;

(2)給結構體中字元陣列賦值:strcpy(stu1.name,」zhangsan」);

(3)結構體成員的三種表示方法:struct student stu1, * ptr;

stu1.num = 1001;

ptr->num = 1002;

(* ptr).num = 1003;

(4)記憶體的計算:(結構體內存以四個位元組對齊)

例一:(1)中的結構體所佔空間36個位元組。

例二:#include

typedef struct

testlength1;

int length1 = sizeof(testlength1); //4個位元組對齊,占用位元組11111011 1000,length = 12

例三:#include

typedef struct

testlength1;

int length1 = sizeof(testlength1); //4個位元組對齊,占用位元組11111011 1000,length = 12

二、聯合的使用:(共用同一記憶體,所佔記憶體以最大位元組算)

union data

union data s1;

len = sizeof(s1);---------len = 8;

從第乙個位址開始,以最大位元組為算。

#pragma pack(n)-----

以n位元組對齊

三、typedef的用法:typedef

原有型別名 新型別名

(1)typedefintnum[100];(

二維陣列同理)

numa---------inta[100]

(2)typedefchar* string;

stringstr------char* str

(3)typedefint(* point) (int);

pointf---------int(* f) (int)

(4)typedefunsignedcharuchar;

uchara---------unsigned char a

(5)typedefint*num[3];

numa---------int*a[3]

(6)tyrpdefstructnodepnode;

pnoden1;

----structnode ;

四、volatile:它所修飾的變數會改變,提醒編譯器每次都到記憶體中取值。

五、大端模式和小端模式

大端模式:高位資料放在低位址;低位資料放在高位址。

小端模式:低位資料放在低位址;高位資料放在高位址。

例題:#include

union data;

int main()

結果:s1 = 12345678

高位址-------------低位址。

s1.a[0]

是低位址,輸出結果78也放在低位址位置,所以為小端模式。

結構體的學習

結構體即結構變數。使用乙個結構體,應先宣告該結構的布局。類似於宣告變數 struct game以上 就宣告了乙個名為game的結構型別。於是我就可以在下面宣告乙個game型別的結構變數 struct game the witcher 3 在c 中struct可省略這時系統就會開闢一塊空間儲存該結構變...

結構體學習

不知道為什麼這個部落格不能貼上來自codeblocks的 假如存在物件 id,name,phone 可以分開來表達 int bx int id,char name,char phone 但是這樣表達存在缺點。所以我們用結構體 struct connect 注意的是結尾要加上 且struct不在主函式...

結構體學習(1) 結構體基礎

在陣列 指標 引用介紹完畢後,今天開始乙個新的模組的學習,結構體。不論是c還是c 都是有結構體的,在專案中結構體也是經常遇到的。我們看一些大神的程式,上來先給你列乙個結構體,哇,瞬間就被征服了,這個人好牛。其實結構體並沒有那麼複雜,作為人工設計的資料型別,結構體是會更加方便的人們對專案的開發和程式的...