結構體小知識課堂

2021-08-19 15:30:44 字數 1361 閱讀 5199

結構體又稱自定義資料型別,可表示為

struct +型別名

例如我們需要統計乙個學生的姓名、年齡等資訊這個時候我們就需要用到結構體:

struct student

char name[20];

int age;

//自定義資料型別,定義完成以後,等同於內建型別   這句話如何理解呢我們看下面**

int main()

在這裡呢,我們引用上邊的語句塊,struct student stu1; struct student brr[5];struct student *p1;這三句**作用就相當於是內建型別,這樣並不會出現語法錯誤,我們可以當做內建型別來使用

在看下邊**:

struct a

;struct student stu3 = ;

stu3.age = 30;

= "sunquan";//error

strcpy(stu3.name,"sunquan");

struct student *pstu = &stu2;

//int *p = &a;

//(*pstu).age = 35;

pstu->age = 35;

return 0;

那麼問題來了,要是定義的是乙個指標變數我們如何來修改它的值呢?前邊介紹過,子函式要想改變父函式的值必須進行傳指標解引用

int main()

;struct student stu3 = ;

stu3.age = 30;

struct student *pstu = &stu2;

int *p = &a;

(*pstu).age = 35;

return 0;

在這裡呢我們一般會忽略優先順序,一般會寫成*pstu.age = 35;這種形式,人都會犯錯誤,於是開發者用一種新的寫法解決這個問題 :pstu->age = 35; 就是用乙個指向符號。多方便,(有兩個自帶*的符號「 -> 」和「」)

struct b

;int main()

{struct b aa;

struct b *bb = &aa;

return 0;

通過aa,*bb來訪問他們的成員,應為

aa.c;

aa.d;

aa.e.a;

aa.e.b;

bb->c;

bb->d;

bb->e.a;

bb->e.b;

總結一下就是:1.結構體定義完成後就等同於內建型別

2.結構體不能定義乙個自身的普通成員,但可以定義乙個指向自身的指標

3.結構體普通變數可以通過「.」來訪問它的成員

4.結構體指標變數通過「->」訪問它的成員

結構體小操作

宣告乙個結構體的一般形式為 struct 結構體名 成員表列 注意 結構體型別的名字是由乙個關鍵字 struct和結構體名 組合而成的 如struct student 結構體名 由使用者指定的,又稱 結構體標記 struct tag 以區別於其他結構體型別 花括號內是該結構體所包括的子項,稱為結構體...

科銳課堂筆記 2017 3 17 結構體

結構體是不同資料 包括型別或邏輯意義 的集合。在設計定義乙個結構體時,要把其合理的資料組織在一塊。點 運算子用來訪問結構體成員,點運算子優先順序僅次於括號。vc6中預設的編譯選項,結構體成員對齊為8位元組 zp8 結構體成員的偏移位址規則是,必須是結構體成員對齊位元組數 zp?和該成員型別長度 字串...

結構體知識總結

struct b關於結構體,我們一定不會陌生,結構體可以說和類的用法類似,但是也有不同之處,總的來說,結構體的使用使我們可以更加方便的儲存和使用資料。我在上面就定義了乙個結構體,裡面有兩個元素,乙個是int型別的,乙個是char型別的,因此,結構體裡面可以放進去不同型別的資料,這跟結構體的空間開闢有...