C語言結構體1

2021-10-19 22:39:46 字數 3309 閱讀 7614

二、結構體變數的初始化

三、結構體變數的引用

四、通過函式完成結構體變數的輸入與輸出

五、typedef與結構體一起使用

六 、應用

c語言有五種基本資料型別:

字元型 char,整型 int,單精度實數型 float,雙精度實數型 double,空型別 void;要想建立一種新的資料型別要怎麼做呢?這時候就需要構造資料型別了,就需要用結構體構造。

在這之前,先了解typedef的用法。

typedef的基本使用**

#include

typedef

int z;

//為int再取乙個名字,叫z; int 和 z 在後面都可以使用。

intmain

(void

)

struct 結構體名

;**:

#include

//定義乙個資料型別,這個資料型別裡面有三個成員

struct person//struct person就如同int

;int

main

(void);

//為變數初始化

printf

("名字:%s 年齡:%d 性別:%c"

, per1.name, per1.age, per1.***)

;return0;

}

#include

//定義乙個資料型別,這個資料型別裡面有三個成員

struct person//struct person就如同int

per1;

//用這個資料型別定義乙個變數per1, 這個就是結構體變數

intmain

(void);

//為變數初始化

printf

("名字:%s 年齡:%d 性別:%c"

, per1.name, per1.age, per1.***)

;return0;

}

這裡沒有為結構體定義名字,所以不能定義其他變數。

#include

struct

per1;

//定義變數per1為結構體變數型別

intmain

(void);

//為變數初始化

printf

("名字:%s 年齡:%d 性別:%c"

, per1.name, per1.age, per1.***)

;return0;

}

前面的可以這種也可以。

#include

//定義乙個資料型別,這個資料型別裡面有三個成員

struct person//struct person就如同int

per1 =

;//用這個資料型別定義乙個結構體變數per1並且初始化。

intmain

(void

)

格式:《結構體變數名》.《成員名》 或者 <(結構體指標變數名)>.《成員名》 或者 《結構體指標變數名》-> 《成員名》

**:

#include

//定義乙個資料型別,這個資料型別裡面有三個成員

struct person//struct person就如同int

per1;

//用這個資料型別定義乙個結構體變數per1並且初始化。

intmain

(void);

struct person * per =

&per1;

//將per1的位址給per,per只能存放struct person型的位址

printf

("名字:%s 年齡:%d 性別:%c"

, per1.name,

(*per)

.age, per->***)

;//三種引用

return0;

}

用引用初始化

#include

#include

//需要這個標頭檔案

//定義乙個資料型別,這個資料型別裡面有三個成員

struct person//struct person就如同int

per1;

//用這個資料型別定義乙個結構體變數per1並且初始化。

intmain

(void

)

就是結構體變數作為函式引數傳遞

**:

#include

#include

struct student

;void

inputstudent

(struct student * pstu)

;//宣告

void

outputstudent

(struct student a)

;int

main

(void

)void

inputstudent

(struct student * pstu)

//pstu佔四個位元組

void

outputstudent

(struct student a)

我們發現每次定義乙個結構體變數或結構體變數指標是都要寫「 struct 結構體名 」,感覺就很麻煩很長,所以可以用typedef一起使用,就更簡潔。

#include

#include

typedef

struct student

*pst, st;

//pst等價於 struct student *, st等價於 struct student

intmain

(void

)

在vc++6.0可正常執行;動態構造乙個陣列儲存學生資訊,然後按分數排序輸出。

#include

#include

typedef

struct student

st;int

main

(void

)//排序

for(i =

0; i < len-1;

++i)}}

printf

("\n\n學生資訊為:\n");

for(i =

0; i < len ;

++i)

//輸出

return0;

}

後記:筆記不是很完善,有待完善。

c語言結構體實驗記錄1

typedef struct computer c 結構體執行成功 c com 3 printf set d n com 1 computerset int j for j 0 j 6 j printf d n com 1 state j com 2 computerset 0 state 0000...

C語言基礎複習 結構體 1

c語言允許使用者根據具體問題利用已有的基本資料型別來構造自己所需的資料型別 陣列是由相同型別的資料構成的一種資料型別,適用於對具有相同屬性的資料進行批量處理 結構體是將不同的資料成員組織到統一的名字之下,適用於對關係緊密 邏輯相關 具有相同或者不同屬性的資料進行處理 結構體變數的定義 1.定義結構體...

C 語言結構體 (1) by xhxh

第一點 許多人都認為c語言只是面向過程的語言且不能物件導向,這是對c語言最大的誤解,結構體就是c語言物件導向的基礎和重要工具,c 相對於c語言,也只是在c語言結構體 鍊錶等的基礎上進行了一系列的深化,所以面向過程與物件導向不是一種語言的特性,而更多的是一種思想,只不過c語言是對一種物件導向不太友好的...