c語言程式設計師可以自己定義的組合資料型別
結構體 共用體 列舉
以下主要詳述結構體:
結構體表示:
struct test
tset1 ,
* test2;
上述表述中:
test表示的是結構體名字.
test1也是表示的是型別名為test的結構體 --->實際上等於struct test
*test2表示的是指標型別為struct test的指標
接下來看乙個比較複雜的情況
struct student
student ,
*stu;
通過以上表述可以知道結構體中可以巢狀結構體,這一點在實際中工作中非常的實用!!
另外,括號中表示的是結構體中的型別,注意:這裡面不能為函式!!
結構體成員變數的記憶體的分布:
結構體中還存在位元組對齊的問題,
結構體成員變數的引用:
域運算子:
比如 student.num 表示的是student這個結構體裡面的num這個物件
指向操作符:
比如p->num;
p->name;
以上二者的區別:採用->運算一般是: 結構體指標->成員變數
採用 . 運算一般是: 結構體變數 . 成員變數
一定要記住!!不要弄錯了
初始化結構體
a:按定義順序依次初始化成員變數,用逗號分開。
b:不按順序初始化 ,採用 . 的方式
結構體陣列的初始化
a.:按陣列元素的順序初始化
b:不按陣列元素的順序初始化
不過結構體初始化一般不常用。 C語言之結構體(簡述 上)
c 陣列允許定義可儲存相同型別資料項的變數,結構是 c 程式設計中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。相比於陣列可以一次的儲存更多的不同的資料型別 為了定義結構,您必須使用 struct 語句。struct 語句定義了乙個包含多個成員的新的資料型別,struct 語句的...
c語言之結構體 (簡述下)
可以把結構體作為函式引數,傳參方式與其他型別的變數或指標類似。有些資訊在儲存時,並不需要占用乙個完整的位元組,而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有 0 和 1 兩種狀態,用 1 位二進位即可。為了節省儲存空間,並使處理簡便,c 語言又提供了一種資料結構,稱為 位域 或 位段 所...
C語言結構體
1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...