結構體學習筆記

2021-08-17 05:14:49 字數 1482 閱讀 7718

什麼是結構體

1、不同型別的變數集合

2、結構體的目的是為了描述乙個物件,為了把乙個物件描述清楚,必須要說出這個物件的很多屬性,為了表示這些屬性,就要用到不同的變數,且變數不止乙個。

工人:工號、姓名、性別、年齡、基本工資

如何來定義結構體

struct 結構體名

struct worker//定義乙個結構體,描述乙個工人

;

如何定義結構體變數:

1、  剛才定義的只是型別,並不是變數。

2、  在c程式有三種型別是已經做好的,只要拿來使用就可以了。 int char  float

但是結構體在c裡面沒有,需要自己來定義

3、  剛定義的型別: struct worker

4、 定義結構體變數有三種方式:

1:在定義結構體的時候,就定義變數,這時定義的變數是全域性變數

2: 在定義結構體型別之後,再定義結構體變數

3:可以通過typedef這個關鍵字,為結構體變數取別名

struct worker//定義乙個結構體,描述乙個工人

w1,w2,w3;//定義了三個結構體變數

struct worker//這是在定義結構體型別

;如何輸出結構體變數的值

1、 由於結構體變數裡面會包含很多屬性,,所以要分別輸出,不能整體輸出

2、 格式: 結構體變數名.屬性名

3、 結構體變數雖然不能整體輸出,但是可以整體賦值

main()

,w2;//w1,w2它們屬性相同,但是屬性值不同

//如何輸出結構體變數的值

printf("%s,%s,%s,%d",w1.id,w1.name,w1.gender,w1.salary);

w3.id=w1.id;

w3.name=w1.name;

w3.gender=w1.gender;

w3.salary=w1.salary;

//或者

w3=w1;//整體賦值

int a,b;

}結構體陣列

main()

,w2=,  

w3=   

};//定義了乙個結構體陣列,名為a裡面包含5個元素,每個元素都是乙個結構體變數

int a[4]=;

printf("工號\t姓名\t年齡\n");

int i;

for(i=0;i<6;i++)

output(a,6);

}//結構體陣列中a[i]就代表乙個物件,它已經不在是乙個值了,所以我們應該用a[i].成員名

void output(wor a,int n)

}屬性為字串的不能直接比較大小,需要通過strcmp函式來比較。

a[i].***=="男"這是錯的

if(strcmp(a[i].***,"男")==0)

結構體學習筆記

以下記載了在初學結構體時犯下的一些錯誤。先來一些雜識 structf struct students void main basic knowledge 錯誤一 結構體內用本身定義實體 1 struct student 2 因為在結構體執行完之前,是沒有記憶體位址空間的。而第五行中定義了乙個實體,顯...

結構體和共用體學習筆記

為什麼需要結構體 傳統解決辦法 陣列是相同型別資料的集合。結構體可以存放不同型別的資料。結構體和結構體變數的區別和聯絡 1 結構體是自定義的資料型別,表示的是一種資料型別,2 結構體變數是乙個具體變數 int num1l int為資料型別,而num1是具體的int變數3 結構體變數在同一記憶體區域 ...

C學習筆記 結構體

結構體是簡單資料型別的綜合 struct man struct man m struct man m 要訪問結構體成員,要使用.操作符。m.age 結構在記憶體的大小是和結構成員最長的那個元素相關的 編譯器在編譯乙個結構的時候採用記憶體對齊模式 struct man sizeof struct ma...