郝斌老師講解問題的四**寶:
為什麼需要a
什麼是a
怎麼用a
使用a需要注意哪些問題
為了表示一些複雜的事物,而普通的基本型別無法滿足實際要求
舉個例子:
乙個學生有:
int age;
float scrore;
char ***;
三個屬性,
定義乙個學生可以使用:
int student1age =10;
float student1score =
30.0
;char student1*** =
'f';
int student2age =
100;
float student2score =
40.0
;char student2*** =
'f';
int student3age =90;
float student3score =
100.0
;char student3*** =
'f';..
....
假如乙個學校有5萬人,需要這樣定義5萬次,分別賦值,這,也太複雜了
因此,我們就可以使用結構體
把一些基本資料型別組合在一起,形成乙個新的復合資料型別,這就是結構體。
定義乙個學生的結構體
struct student
;
上面的**,只是定義了乙個型別,而沒有定義變數。
enum裡面變數後面是逗號,不要與結構體搞混
//typedef enum : nsuinteger ;
定義結構體的三種方式:
//第一種方式
struct student
;//第二種方式
struct student2 student2;
//第三種方式
struct
student3;
其中,
第一種,定義了乙個結構體型別,最常用,推薦使用
第二種將變數型別與變數名結合起來,只能使用變數名student2,如果你想再使用該結構體定義乙個新的變數,是不行的。不推薦使用
第三種方式,知道有這麼個東西就行,特別不推薦使用。
賦值:
//建立的時候賦值
struct student st =
;/**
struct student 是乙個型別
st是變數名
模擬 int a = 10;
struct student就是乙個結構體型別,是我們自定義出來的型別
*/struct student st2;
//建立完畢後,再賦值
st2.age =10;
st2.scrore =
10.2
; st2.*** =
'f';
printf
("%d, %f, %c\n"
, st.age, st.scrore, st.***)
;printf
("%d, %f, %c\n"
, st2.age, st2.scrore, st2.***)
;//使用st.age,取出結構體st裡面的成員變數age
取出結構體中的成員
兩種方式:
方式一
struct student st =
;st.age =10;
方式二struct student *pst =
&st;
pst->age =10;
//pst是指標變數,其裡面儲存的內容,是型別為struct student的結構體的位址。
模擬int a =10;
int*p =
&a;
pst->age的含義是:
通過指標變數pst,找到對應的struct student的結構體,取出結構體裡面的成員age。
pst->age,編譯器會將其轉換為(*pst).age
pst->age 等價於 (*pst).age 也等價於 st.age
結構體變數不能±*/。但,結構體變數可以相互賦值 (st1 = st2);
資料結構學習基礎:
重中之重
struct node
;struct node *phead;
//phead用來儲存鍊錶的頭結點的位址。其實,也就是頭指標
也可以使用typedef定義
typedef
struct node node,
*pnode;
//node等價於struct node. pnode等價於struct node *
c語言結構體知識點
一 strlen和sizeof的區別 include include main 答案為6和5.注意這個字串的長度用strlen來求的話,我們就不用算後面的 0,但是用sizeof來算的話就要算入 0.0 ascii不為0,但是 0 的為空值。字元賦值 char sp,s 10 如果是sp hello...
c語言結構體知識點
一 結構體和共用體以或使用者定義型別 如 typedef 型別名 識別符號 typedef int integer 該語句把ineger說明成了乙個int 的型別名,在此說明之後,可以用識別符號integer來定義整型變數 例如 ineger a 等價於int a 例如 typedef char c...
結構體知識點總結
對於結構體的知識點,我主要分為以下幾點來講解 結構體的宣告 結構體型別的建立 結構體成員的訪問 結構體的初始化 結構體內存對齊 位段。1.結構體的宣告 struct stu 分號不能丟2.結構體型別的建立 有兩種建立的方法,第一種 struct stu struct stu s1 定義了乙個結構體變...