C 基礎程式設計 08 結構體

2021-10-14 09:43:40 字數 4333 閱讀 1474

結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別。

語法:struct 結構體名 ;

通過結構體建立變數的方式:

(1)struct 結構體名 變數名

(2)struct 結構體名 變數名=

(3)定義結構體時順便建立變數

#include

using

namespace std;

#include

//1.建立結構體:建立學生資料型別:(自定義資料型別,一些基本資料型別集合組成的乙個型別:struct 型別名稱 )

struct student

;struct ss

s3;//2.使用結構體:通過學生型別建立學生

intmain()

struct student s2 =

; cout <<

"姓名:"

<< s2.name <<

"年齡:"

<< s2.age <<

"分數:"

<< s2.score << endl;

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

//之前定義了ss結構體時順便定義了結構體變數

s3.name =

"王五"

; s3.age =19;

s3.score =99;

cout <<

"姓名:"

<< s2.name <<

"年齡:"

<< s2.age <<

"分數:"

<< s2.score << endl;

}

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

語法:struct 結構體名 陣列名=,{},…{}}

#include

using

namespace std;

#include

//1.建立結構體:

struct student

;int

main()

,,};

//3.結構體陣列中的元素賦值

stuarray[2]

.name =

"趙六"

; stuarray[2]

.age =30;

stuarray[2]

.score =88;

//3.結構體陣列遍歷

for(

int i =

0; i <

sizeof

(stuarray)

/sizeof

(stuarray[0]

); i++

)}

作用:通過指標訪問結構體成員

利用操作符->可以通過結構體指標訪問結構體屬性

#include

using

namespace std;

#include

//1.建立結構體:

struct student

;int

main()

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

struct student* p =

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

cout <<

"姓名:"

<< p-

>name <<

"年齡:"

<< p-

>age <<

"分數:"

<< p-

>score << endl;

}

作用:結構體中的成員可以是另乙個結構體

#include

using

namespace std;

#include

//1.建立結構體:

//建立學生結構體

struct student

;//建立老師結構體

struct teacher

;int

main()

作用:將結構體作為引數向函式中傳遞

#include

using

namespace std;

#include

//1.建立結構體:

//建立學生結構體

struct student

;//2.建立函式

//值傳遞函式:不能修改實參

void

printinfo

(struct student stu)

void

printinfo2

(struct student *stu)

intmain()

;//3.函式呼叫

//值printinfo

(s);

//位址

printinfo2

(&s)

;}

作用:用const防止誤操作

#include

using

namespace std;

#include

//1.建立結構體:

struct student

;//函式:引數為指標,可以減少記憶體空間,而且不會複製新的結構體副本。、

//結構體的值.防止誤操作

void

printinfo

(const

struct student* stu)

intmain()

;//3.通過函式列印結構體變數的資訊

//值printinfo

(&s)

;}

案例描述:學校正在做畢業設計專案,每名老師帶領5個學生,總共有3名老師,需求如下,設計學生和老師結構體,其中在老師的結構體中,有老師姓名和乙個存放5名學生的陣列作為成員。學生的成員有姓名,考試分數,建立陣列存放3名老師,通過函式給每個老師及所帶學生賦值。最終列印出老師資料以及老師所帶學生的資料。

#include

using

namespace std;

#include

#include

//案例1:學校正在做畢業設計專案,每名老師帶領5個學生,總共有名老師,需求如下

//設計學生和老師結構體,

//其中在老師的結構體中,有老師姓名和乙個存放5名學生的陣列作為成員。

//學生的成員有姓名,考試分數,

//建立陣列存放3名老師,通過函式給每個老師及所帶學生賦值。

//最終列印出老師資料以及老師所帶學生的資料。

//1.建立結構體:

struct student

;struct teacher

;//賦值函式

void

allocatespace

(teacher tarray,

int len)}}

//列印資訊函式

void

printname

(struct teacher tarray,

int len)}}

intmain()

案例描述:設計乙個英雄的結構體,包括成員姓名,年齡,性別;建立結構體陣列,陣列中存放5名英雄。通過氣泡排序的演算法,將陣列中 的英雄按照年齡進行公升序排列,最終列印排序後的結果。

#include

using

namespace std;

#include

#include

//案例2:設計乙個英雄的結構體,包括成員姓名,年齡,性別;

//建立結構體陣列,陣列中存放5名英雄。

//通過氣泡排序的演算法,將陣列中的英雄按照年齡進行公升序排列,

//最終列印排序後的結果。

//1.建立結構體:

struct hero

;//.存放英雄函式

void

allocatespace

(hero heroarray,

int len)

;int ages[5]

=;string genders[5]

=;for(

int i =

0;i < len;i++)}

//氣泡排序年齡公升序排列

void

bubblesort

(struct hero heroarray,

int len)}}

}//列印英雄資訊

void

printhero

(struct hero heroarray,

int len)

}int

main()

C 基礎入門 08結構體

結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別 語法 struct 結構體名 通過結構體建立變數的方式有三種 示例 結構體定義 struct student stu3 結構體變數建立方式3 int main cout 姓名 stu2.name 年齡 stu2.age 分數 stu2....

C 程式語言基礎08

結束距離break最近的那一層迴圈 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace for迴圈 int s...

C基礎 結構體

c語言,結構體語法 1.定義結構體型別 struct 結構體名稱 例 struct date int year int month int day 2.結構體在記憶體中 例一 struct student char name 指標佔8個位元組 int no int佔4個位元組 int age int...