C語言結構體和C語言鍊錶

2021-08-17 05:58:25 字數 1947 閱讀 9749

前言:對於c語言指標方面,因為博主目前還不能夠達到自己想要的水平,所以我就不在這裡班門弄斧了,現在總結一下結構體,等再過段時間,我把指標弄的爐火純青的成都的時候,我在來獻醜吧 0v0

三、結構體型別變數的賦值於初始化

四、結構體型別陣列的定義於引用

我們之前學過一些構造型別,陣列就是其中之一,但是陣列中的每乙個元素都具有相同的資料型別,換言之乙個陣列只具有一種資料型別,因此在處理大量的相同資料型別的時候,用陣列的話是很方便滴!但是呢,在處理實際問題的時候,陣列就不適合解決了。比如對乙個學生的資訊進行處理,學生資訊裡面包含著姓名、學號、年齡、愛好、成績、家庭住址等等。所以我們這個時候就需要使用使用者自定義型別來操作了。而接下來我要講的結構體、聯合體均屬於使用者自定義資料型別。

在c語言中定義結構體型別的一般格式為:

struct 結構體型別名;
其中struct是使用者用於定義具有結構體型別的關鍵字,此關鍵字告訴編譯系統,準備定義乙個結構。結構型別名是由使用者自己定義的識別符號。 結構體如下:

struct student;
當在程式中定義了某個具體的結構體型別的以後,意味著有了乙個新的資料型別,可以定義該型別的變數。定義結構體型別變數可以有以下3中方法:

struct 結構體名 變數1,變數2,變數3...,變數n;
struct 結構體名變數表;
struct變數表; 

如:structstu1,stu2,stu3;

注意:結構體名和結構體變數是兩個不同的概念。結構體名表示一種自定義的資料型別,編譯系統並不給它分配儲存空間。只有通過結構體說明了結構體變數後,才對改變量分配了儲存空間。

//對於訪問結構體成員這裡提一下,後面將會講到總共的三種方式:

//例如:

stu1.num

stu1.name

stu2.birthday.month

//運用陣列和指標的表示,定義了如下的結構體:

struct sstu;

struct s *p=stu;

//第一種:

(*p).num;

//第二種

p->num;

//第三種

stu.num;

//有關的方式後面會相繼提到的。

再定義結構體變數的說明語句中,可以對定義的結構體變數賦初值,即初始化。此方式於對陣列的初始化相似。

例如:

struct sstu=;
結構體型別陣列在構造樹、表、佇列等資料結構時特別方便。

定義結構體型別陣列前要先定義乙個結構體型別,然後就可以像定義普通陣列一樣定義結構體型別陣列。

定義結構體型別陣列有以下三種方式:

方式一:

struct studentstu[30];
方式二:

struct student;

struct student stu[30];

方式三:

structstu[30];
定義後,結構體陣列中的元素在記憶體中是連續存放的 。

struct student

;#include

void main(),,,

,};

for(i=0;i<9;i++)

/*在c語言中'\'這個符號一般用於為了書寫好看而換行且不影響**執行的符號,詳 見

}

未完待續··········

C語言 鍊錶 結構體

目的 1.編寫手機 薄管理程式,用結構體實現下列功能 1 手機 薄含有姓名 宅電 手機3項內容,建立含有上述資訊的 簿。2 輸入姓名,查詢此人的號碼。3 插入某人的號碼。4 輸入姓名,刪除某人的號碼。5 將以上功能分別用子函式實現,編寫主函式,可以根據使用者的需要,呼叫相應的子函式。建議用結構體和鍊...

C語言整理 十 (結構體和鍊錶)

在實際應用中,需要處理的資料常常是由多種資料型別組成的。所以c語言給了一種構造資料型別 結構體。結構體型別申明 格式 struct 結構體名 struct是關鍵字,是結構體型別的標誌 1 先宣告結構體型別,再定義結構體變數 格式 struct 結構體名 struct 結構體名 變數名表列 2 宣告結...

C語言結構體及鍊錶定義

最近在看 大話資料結構 一邊看書一邊跑一下書中的案例,加深下理解。書中的案例都是c寫的,順便熟悉下c語言。此處第三章線性表鏈式儲存 typedef struct node node typedef struct node linklist 定義linklist 鍊錶結點定義不是很理解,因此找了些資料...