結構體spa
爲何須要結構體?.net
爲了表示一些複雜的事務,而普通的基本類型變量沒法知足實際要求指針
什麼叫結構體?code
把一些基本類型數據結合在一塊兒造成一個新的符合數據類型,這個叫作結構體orm
如何定義結構體?blog
有三種方式:事務
(第一種方式是值得推薦的)ci
struct student { int age; float score; int sex; };
第二種,能夠直接寫上變量名稱(不經常使用)get
struct student1 { int age; float score; int sex; }allen;
第三種,能夠省略掉一個類型名稱,加上一個變量名(這種不經常使用)博客
struct { int age; float score; int sex; }frank;
怎麼去使用結構體變量?
賦值和初始化
struct student member = {24, 66.6, 1};
如何取出結構體變量中的每個成員
1,結構體變量名.成員名
2,指針變量名->成員名 (第二種方式更經常使用)
1 pst->age 計算機內部會被轉化成 (*pst).age 沒有道理可講,就這規定。
2 因此, pst->age 等價於 (*pst).age 也等價與 st.age
3 之因此知道 pst->age 等價於 st.age,是由於 pst -》age 是被轉化成了(*pst).age來執行。
4 pst->age 的含義:pst所指向的那個結構體變量中的age這個成員
小案例:
# include <stdio.h> struct student { int age; float score; int sex; };//這裏的分號是不能夠少的,第一次寫的時候坑死了 struct student1 { int age; float score; int sex; }allen; struct { int age; float score; int sex; }frank; int main(void) { struct student member = {24, 66.6, 1}; //haha = {24 , 66.6, 0}; //這樣寫是錯的,建立變量的時候能夠這樣賦值,建立以後,就須要單個賦值了 allen.age = 24; allen.score = 66.6; frank.sex = 1; printf("%d \n",member.age); printf("%f \n",allen.score); printf("%d \n",frank.sex); return 0; } /* VC6.0++上運行的結果: ===================================== 24 66.599998 //前面記錄過,浮點型是不能很是準確的記錄一個小數的。 1 ===================================== 總結: 定義的同時能夠總體賦值 若是定義完以後,則只能單個賦值了 */
學PHP的小螞蟻 博客 http://my.oschina.net/woshixiaomayi/blog