struct 識別符號//自行確定,相當於變數名
;//最後的這個分號一定不能落下
例如:
struct employee
;
下面是對結構體更為官方的解釋
結構是由不同資料型別的資料組成的集合體。
結構由數目固定的成員構成
各成員可以具有不同的資料型別
乙個結構變數在記憶體占有一片連續的儲存空間
值得一提的是最後一條關於結構體的儲存
就如陣列一樣,定義乙個陣列a[10],只要a[0]確定了位址,這個陣列後面的a[1]到a[9]會緊跟著a[0]。也就是說識別符號的位址確定了後,其後面的每乙個成員的位址都會緊隨其後。
在定義乙個結構變數的時候,可以宣告型別之後宣告變數:
struct employee
;employee worker1, worker2,
*emp ;
也可以宣告型別的同時宣告變數
struct employee
worker1, worker2,
*emp ;
這樣下來worker1,worker2就都是兩個employee型別的變數了,*emp是employee型別的指標變數。另外,在說明結構變數的同時可以進行初始化,例如:
employee worker=
;
在訪問和賦值的時候,結構體也只能單獨訪問和賦值,訪問結構變數成員使用的是圓點運算子:結構變數名.成員
例如:
#include
using
namespace std;
struct weather // 宣告結構型別,寫在主函式之前
;int main (
)
也可以用指標訪問結構變數的成員 :
結構指標 -> 成員
(*結構指標 ) . 成員
# include
# include
using
namespace std ;
struct person
;int main (
)
結構體陣列應用舉例:
對候選人得票的統計程式。
設有3個候選人,最終只能有1人當選。今有10個人參加投票,從鍵盤先後輸入這10個人所投的候選人的名字,要求最後輸出這3個候選人的得票結果。
#include
struct person//宣告結構體型別person
;int
main()
;//定義person型別的陣列,內容為3個候選人的姓名和當前的得票數
int i,j;
char leader_name[20]
;//leader_name為投票人所選的人的姓名
for(i=
0;i<
10;i++
) cout
0;i<
3;i++
)//輸出3個候選人的姓名與最後得票數
return0;
}
在使用結構體的時候有一點值得注意:
乙個結構型別的成員可以是另乙個已定義的結構型別
例如:為職工結構新增出生日期資訊型別和變數宣告為:
struct
**date**;
struct employee
worker1, worker2 ;
但是結構函式不能自己實現無窮的遞迴結構,也就是說在結構體內部包含乙個型別為該結構的成員這是非法的
struct person
worker1, worker2 ;
某山面試 3 實現如下函式
3 實現如下函式 void printinchinese int num 這個函式輸入乙個小於100000000 一億 的正整數,並在螢幕上列印這個數字的中文寫法。例如 17 一十七 120 一百二十 201 二百零一 1074 一千零七十四 65536 六萬五千五百三十六 1010101 一百零一...
粉象生活助農顯成效 山灣柑橘成爆款
今年是決戰決勝脫貧攻堅之年,農村地區的發展事關脫貧全域性戰略,而農村產業興旺事關農民收入和鄉村振興的大局。每年收穫季節農產品銷售難的主要問題還是卡在流通不暢,而utulohpa這導致農民的損失有時候可達30 甚至達到50 以上。因此,如何改善產品流通則是鄉村產業興旺的重中之重。近年來,隨著網際網路社...