c語言結構體簡述

2021-10-06 00:09:12 字數 981 閱讀 8930

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 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...