初級結構體
1.結構體類型的聲明
結構體是什麼:
struct stu是咱們本身建立的一種類型(與int相似)
s是一個變量,它的類型是結構體類型(struct stu)
struct stu是變量類型的聲明,聲明是一條語句因此要在花括弧後加分號
類型不佔空間,只有當建立變量時才向內存申請空間
1.struct tag(tag的意思是標籤)結構體標籤(tag本身決定,簡明知意便可)
2.member - list結構體成員變量列表
3.結構體成員變量能夠是不一樣類型的
4.variable - list(變量列表)s1,s2,s3;
5.結構體成員列表裏放的都是變量
6.可是這些變量在沒使用結構體時都是未開闢空間的
5.表示struct stu s1;struct stu s2;struct stu s3;
6.並且s1,s2,s3爲全局變量
通常不採用這種方法
通常建立臨時變量,而不是全局變量
typedef從新定義的意思
就是將struct Stu從新起了一個名字叫Stu
而且能夠根據這個建立變量
2.結構體變量的定義及初始化
結構體使用{}花括弧進行初始化
結構體變量的初始化(一一對應)
至關於char name[20]="張三",short age=20,char tele[12]="15249287076",char sex[5]="男";
結構體的成員能夠是其餘結構體
此時結構體的初始化
由於成員s是另外一個結構體,因此也要用花括弧進行初始化
3.結構體成員訪問
使用(.)操做符進行成員訪問
訪問方式:
建立的結構體變量t(.)結構體成員變量
例:t.ch
分析:
4.結構體傳參
傳值調用時
函數形參使用相應的結構體變量來接受實參傳來的結構體變量
傳址調用時
函數形參使用相應的結構體 指針 變量 來接受實參傳來的結構體變量的地址
用(->)操做符進行結構體成員訪問
只能 在 變量爲 指針變量 時 可使用 (->)操做符 進行結構體成員訪問
print2更好一點
傳值調用是傳址調用的一份臨時拷貝
傳址調用時傳遞的是結構體的地址
內存時間和空間的浪費會小一點
建議:
結構體傳參
採用傳址調用的方式
壓棧:
任何一次函數調用時會在棧區上申請一塊內存空間
只能在棧頂上入棧
只能在棧頂上出棧
傳參的這個動做就叫作壓棧操做
ide