但需要表示一些複雜資訊時,使用單純的資料型別很不方便。
比如:學生資訊(學號,姓名,班級,**,年齡)
結構,就是程式設計師自定義的一種「資料型別」
是使用多個基本資料型別、或者其他結構,組合而成的一種新的「資料型別」。
struct 結構名 ;
例項:
struct student
;
特別注意:
1)要以 struct 開頭
2)最後要使用分號
3)各成員之間用分號隔開
#include
#include
#include
//結構, 就是程式設計師自定義的一種"資料型別"
struct student
;//結構體包含結構體的情況
struct _class
;int
main()
;printf
(, weifc.name, weifc.age, weifc.tel)
;//方式二 定義的時候我們可以指定初始化的屬性vs/vc不支援 gcc支援
//struct student s1 =;
//方式三 單獨初始化每乙個屬性
struct student s2;
strcpy
(s2.name,
"楊過");
s2.age =40;
s2.tel[0]
='\0'
;printf
(, s2.name, s2.age, s2.tel)
;struct _class c1=,
,};printf(,
c1.weifc.name, c1.weifc.age, c1.weifc.tel)
;system
("pause");
return0;
}
使用形式:
結構體變數.成員變數
中間用 . 分隔
執行結果:
;//c2 = c1; 陣列不能直接賦值
system
("pause");
return0;
}執行結果:
struct 結構名 變數名[陣列大小]
#include
#include
#include
struct student
;int
main()
使用結構體變數址指標訪問結構體成員要使用 -> 符號
#include
#include
#include
struct _friend
;int
main
(void);
struct _friend *my_girl =
&girl;
printf
("小龍女的名字: %s 性別: %s 年齡: %d\n"
, girl.name,girl.***==
'm'?
"男":
"女", girl.age)
;//指標訪問結構體變數的成員, 有兩種方式
//方式1. 直接解引
printf
("小龍女的姓名: %s 性別: %s 年齡: %d\n",(
*my_girl)
.name,
(*my_girl)
.***==
'm'?
"男":
"女",
(*my_girl)
.age)
;//方式2. 直接使用指標訪問 ->
printf
("小龍女的姓名: %s 性別: %s 年齡: %d\n"
, my_girl-
>name,
my_girl-
>***==
'm'?
"男":
"女", my_girl-
>age)
;system
("pause");
return0;
}
***實際開發中***常用 -> 符通過指標去訪問結構體指標變數的成員
執行結果:
;//形參是結構體變數, 值傳遞
struct programer add_salary
(struct programer p,
int num)
//形參使用結構體指標
void
add_salary1
(struct programer *p,
int num)
//形參使用引用
void
add_salary2
(struct programer &p,
int num)
//形參是結構體變數, 值傳遞, 返回引用
struct programer&
add_salary3
(struct programer p,
int num)
intmain
(void
)注意:一般不建議把結構體直接作為函式引數。
因為結構體的 size 比較大,直接傳遞,消耗效能!
解決方案:(使用指標和引用,優先使用引用)
執行結果:
大家對學到的知識要, 多複習, 多總結, 多敲.
我是小白, 如果存在問題, 歡迎大神給予評判指正.
錯了不可怕, 可怕的是找不出bug
複習 回顧 總結 巨集
為什麼要使用巨集 1 提高 的可讀性和可維護性 2 避免函式呼叫,提高程式效率 什麼是巨集 它是一種預處理器指令,在預編譯階段將巨集名替換為後面的替換體 巨集的定義 由三部分組成 define width 960 預處理指令 巨集名 替換體 多行可用 延續 include include defin...
個人回顧總結
答 我們的軟體要解決如何讓同學們在愉悅歡快的遊戲中收穫知識,如何把學習變成一件相對不枯燥的事情,我們利用充足的時間做了計畫,並同夏大偉老師進行商討解決了對於需求的滿足。答 有,相對來說時間相對充裕,但是由於我們要做的是遊戲,乙個全新的東西嗎,所以制定計畫有一些費力。答 我們小組意見都會說出來,如果不...
專案回顧 總結
一 團隊中每個人針對專案回顧模板中的問題,用markdown語法寫下自己的思考和回答並發布到自己的 我們的軟體要解決什麼問題?是否定義得很清楚?是否對典型使用者和典型場景有清晰的描述?我們的軟體主要解決藥品庫存量的管理,我們定義清楚,我們軟體面對的使用者是醫生和藥品庫存管理人員,面對的場景是醫院 是...