C語言之結構體(簡述 上)

2021-10-24 15:44:34 字數 1982 閱讀 2754

c 陣列允許定義可儲存相同型別資料項的變數,結構是 c 程式設計中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。

相比於陣列可以一次的儲存更多的不同的資料型別

為了定義結構,您必須使用 struct 語句。struct 語句定義了乙個包含多個成員的新的資料型別,struct 語句的格式如下:

struct tag  variable-list ;
tag 是結構體標籤。

member-list 是標準的變數定義,比如 int i; 或者 float f,或者其他有效的變數定義。這其中就可以定義不同型別的資料型別。

variable-list 結構變數,定義在結構的末尾,最後乙個分號之前,您可以指定乙個或多個結構變數。

舉個栗子?:統計我們班的學生報名的活動包括人數,姓名,年齡,性別,活動名稱,總共5個種類的資料。

struct statistics

class;

在一般情況下,tag、member-list、variable-list 這 3 部分至少要出現 2 個。

結構體的成員可以包含其他結構體,也可以包含指向自己結構體型別的指標,而通常這種指標的應用是為了實現一些更高階的資料結構如鍊表和樹等。

//此結構體的宣告包含了其他的結構體

struct complex;

//此結構體的宣告包含了指向自己型別的指標

struct node

;

其實指標的操作在c中真的好靈活

如果兩個結構體互相包含,則需要對其中乙個結構體進行不完整宣告,如下所示:

struct b;    //對結構體b進行不完整宣告

//結構體a中包含指向結構體b的指標

struct a;

//結構體b中包含指向結構體a的指標,在a宣告完後,b也隨之進行宣告

struct b

;

這只是乙個大概的演示,並沒有將其完全的將其寫明白,但是基本上結構體中包含另乙個結構體的方法就是這樣子了,用指標來跳轉。

和其它型別變數一樣,對結構體變數可以在定義時指定初始值。

#include struct statistics

class=;

int main ()

將他執行出來的話就是

name: 拜拜李

***: 男

activity:大胃王比賽

age:18

number:21

為了訪問結構的成員,我們使用成員訪問運算子(.)。成員訪問運算子是結構變數名稱和我們要訪問的結構成員之間的乙個句號。可以使用 struct 關鍵字來定義結構型別的變數。

上面的也有用到這個句號, strcpy,即string copy(字串複製)的縮寫。strcpy是一種c語言的標準庫函式,strcpy把含有』\0』結束符的字串複製到另乙個位址空間,返回值的型別為char。*

下面的**就是演示,

#include #include //先宣告了結構體books 結構體,有title ,author ,subject ,book_id 這幾種型別

struct books;

int main( )

可以把結構作為函式引數,傳參方式與其他型別的變數或指標類似。

可以定義指向結構的指標,方式與定義指向其他型別變數的指標相似,如下所示:

struct books *struct_pointer;
struct_pointer = &book1;
為了使用指向該結構的指標訪問結構的成員,您必須使用->運算子,如下所示:

struct_pointer->title;

c語言之結構體 (簡述下)

可以把結構體作為函式引數,傳參方式與其他型別的變數或指標類似。有些資訊在儲存時,並不需要占用乙個完整的位元組,而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有 0 和 1 兩種狀態,用 1 位二進位即可。為了節省儲存空間,並使處理簡便,c 語言又提供了一種資料結構,稱為 位域 或 位段 所...

C語言之結構體

一 什麼是結構體 結構體是不同型別的資料組合成乙個有機整體。例如 學生的學號 姓名 性別 成績 位址 這些都是乙個學生的屬性,把這些屬性組織成乙個組合,組合中包含不同的資料型別,c和c 允許指定這樣的資料型別,稱為結構體。struct student 申明乙個結構體型別 struct是結構體申明的關...

C語言之結構體

在c語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct 結構體名 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員 member 請看下面的乙個例子 struct stu stu 為結構...