二、結構體陣列
三、結構體指標
四、結構體的巢狀結構體
五、結構體做函式引數
六、結構體中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...