c 自學之結構體

2021-10-21 19:59:12 字數 2536 閱讀 4598

二、結構體陣列

三、結構體指標

四、結構體的巢狀結構體

五、結構體做函式引數

六、結構體中const使用場景

七、typedef與結構體

語法:struct 結構體名;

//結構體定義

struct student

;

通過結構體建立變數的方式有3種

例:

-

struct 結構體名 變數名

例: struct student s1;

//給s1屬性賦值,通過. 訪問結構體變數中的屬性

s1.name = 「張三」;

s1.age =

18; s1.score =

100;

-struct 結構體名 變數名 =

例: struct student s2 =

; - 定義結構體時順便建立變數

例: struct student

s3;

注:常用的為第一或第二種方法

作用 :將自定義的結構體放入到陣列中方便維護

語法:struct 結構體名 陣列名【 元素個數 】= ,{} ,… {} }

例:

struct student arr[3]

=,,.

..}

結構體只不過是一種資料型別(自定義資料型別),所以結構體陣列就跟int array意思差不多

結構體陣列的遍歷

例:

for( int i =

0; i <

3; i++)

作用:通過指標訪問結構體中的成員
struct student

;int

main()

;//通過指標指向結構體變數

struct student *p =

&s;//通過指標訪問結構體變數中的資料

cout <<

"名字:"

<< p-

>name <<

"年齡 :"

<< p-

>age <作用:結構體中的成員可以是拎乙個結構體

例如:每個老師的結構體中,含有乙個學生的結構體

例:

//學生結構體定義

struct student

;//教師結構體定義

struct teacher

;//要先定義學生的結構體 不然會報錯(因為電腦不知道student結構體)

//建立老師結構體變數

teacher t;

t.id =

10000

;t.name =

"老王"

;t.age =50;

t.stu.name =

"小王"

;t.stu.age =20;

t.stu.score =60;

cout<<

"老師姓名:"

<< t.name <<

"老師編號: "

<< t.id <<

"老師輔導的學生的名字:"

<< t.stu.name<作用:將結構體作為引數向函式中傳遞

傳遞方式:

//學生結構體定義

struct student

;void

printstudent1

(struct student s)

;void printstudent2 (

struct student *p)

;int

main()

//值傳遞

void

printstudent1

(struct student s)

//位址傳遞

void printstudent2 (

struct student *p)

作用:用const來防止誤操作

//定義結構體

struct student

;//列印結構體函式

//將函式中的形參改為指標,可以減少記憶體空間,而且不會複製新的副本出來

void

printstudent

(const student *stu)

int main ();

//通過函式列印結構體資訊

printstudents

(&s)

;}

注:1.const可以將函式變成乙個唯讀的函式,不可寫,以防止我們的無操作

typedef

struct

sqlist;

// 順序表的型別定義

注:等效下面的:

struct sqlist

;// 順序表的型別定義

這兩種方法其實是一樣的(作用一樣,只不過乙個放在後面乙個放在前面)

多看多看多看!!!!!!!!!!!!!!!!!!!!!

寫了差不多3個小時!!!!!

c 之結構體

結構是使用 struct 關鍵字定義的,與類相似,都表示可以包含資料成員和函式成員的資料結構。一般情況下,我們很少使用結構,而且很多人也並不建議使用結構,但作為.net framework 一般型別系統中的乙個基本架構,還是有必要了解一下的。結構的特徵 結構是一種值型別,並且不需要堆分配。結構的例項...

C 之結構體

structtype.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std struct student int main student p stu 定義乙個指向結構體student的指標 cout stu.num endl ...

c 之結構體

include using namespace std include 結構體 屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別 自定義資料型別,一些型別集合組成的乙個型別 語法 struct 型別名稱 1.建立學生資料型別 學生包括 姓名,年齡,分數 struct student s3 2...