結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別。
語法: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...