成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

EasyC++,結構體初探

開發 后端
數組可以存儲多個同類型的變量,但如果我們想要存儲多個不同類型的變量呢?比如說我們想要存儲一個學生的姓名、年齡、性別、考試分數,這些變量可能string, int, float都有,顯然就不能使用數組了。

  [[431023]]

大家好,我是梁唐。

這是EasyC++系列的第13篇,咱們來聊聊C++當中的結構體。

想要追求更好閱讀體驗的同學,可以點擊文末的「閱讀原文」,訪問github倉庫。

結構體

定義結構體

數組可以存儲多個同類型的變量,但如果我們想要存儲多個不同類型的變量呢?比如說我們想要存儲一個學生的姓名、年齡、性別、考試分數,這些變量可能string, int, float都有,顯然就不能使用數組了。

為了滿足這樣的存儲要求,我們可以使用C++當中的結構體(struct)。在同一個結構體當中,我們可以定義許多種不同類型的變量,就可以滿足我們各種各樣的需求了。如果我們想要存儲多個這樣的內容,還可以將它定義成數組。

結構體和類已經很接近了,所以理解結構體對于理解面向對象非常有幫助。雖然算法競賽當中一般用不到面向對象,但是對于開發者來說,面向對象可以說是必學的內容。C++ primer中說,結構體是C++ OOP(面向對象編程)的基石。

我們使用關鍵字struct來定義一個結構體:

  1. struct student { 
  2.  string name
  3.     bool gender; 
  4.     double scores; 
  5. }; 

表示定義了一個結構體,它的類型名是student,花括號當中括起來的內容是結構體的成員變量。注意student是類型名,也就是說我們可以用它來定義出student類型的變量:

  1. student xiaoming; 
  2. student john; 

我們可以用.來訪問結構體內部的元素:

  1. cout << john.name << endl; 

struct的定義有兩種寫法,既可以寫在main函數外部,也可以寫在main函數內部。如:

  1. // 寫法1 
  2. struct student { 
  3.  string name
  4.     bool gender; 
  5.     double scores; 
  6. }; 
  7.  
  8. int main() { 
  9.     // do something 
  10.     return 0; 
  11.  
  12. // 寫法2 
  13. int main() { 
  14.     struct student { 
  15.         string name
  16.         bool gender; 
  17.         double scores; 
  18.     }; 
  19.     // do something 
  20.     return 0; 

邏輯上兩種方式完全一樣,只是第一種方式student類型可以被任何函數使用,但如果寫在main函數內部,就只能在main函數內部使用。

結構體變量也可以定義在函數內部定義,定義在外部的變量被所有函數所共享,也就是全局變量。C++ primer當中提倡盡量使用外部結構體。

初始化方式

我們可以和數組一樣,在花括號內使用逗號進行分隔,如:

  1. student xiaoming = {"xiaoming", 1, 3.5}; 

編譯器會按照順序,分別將"xiaoming"賦值給name,1賦值給gender,3.5賦值給score。我們也可以使用C++11的列表初始化方式省略掉中間的等于號:

  1. student xiaoming {"xiaoming", 1, 3.5}; 

結構體數組

定義了結構體之后,我們還可以像是基礎變量類型一樣定義結構體數組。

  1. struct student { 
  2.  string name
  3.     bool gender; 
  4.     double scores; 
  5. }; 
  6.  
  7. student sts[10]; 

對于結構體數組來說,我們也可以使用列表初始化方式來初始化,由于結構體本身的初始化就用到花括號,所以數組的初始化會使用到花括號的嵌套,像是這樣:

  1. student sts[2] = { 
  2.     {"xiaoming", 1, 3.6}, 
  3.     {"john", 1, 5.2} 
  4. }; 

 

責任編輯:武曉燕 來源: Coder梁
相關推薦

2021-10-27 16:27:20

C++指針操控

2021-12-12 18:13:54

C++This指針

2021-10-29 09:44:50

C++指針變量

2021-12-29 20:31:40

C++多態指針

2021-11-26 00:03:20

C++編譯常量

2021-12-09 10:56:50

函數C++原型

2021-12-08 10:43:09

C++實現

2021-12-10 10:45:36

C++函數Stock

2021-12-30 14:58:58

C++函數動態

2021-11-09 10:38:16

C++Const指針

2021-12-11 19:02:03

函數C++對象

2021-11-27 11:50:09

C++靜態持續

2021-11-10 10:48:36

C++函數指針

2021-10-26 15:36:17

C++枚舉值類型

2021-12-05 18:20:42

C++空間特性

2021-12-15 10:25:57

C++運算符重載

2022-01-04 16:35:42

C++Protected關鍵字

2021-10-21 18:52:00

C++數組存儲

2021-12-14 10:12:58

C++抽象數據

2021-12-26 00:08:35

C++初始化列表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品欧美一区二区三区综合在线 | 91久久国产精品 | 91福利网| 亚洲精彩免费视频 | 成人做爰69片免费观看 | 中文视频在线 | 影音先锋久久 | 在线午夜| 日韩一级免费观看 | 欧美性生活一区二区三区 | 亚洲一区在线播放 | 久久久久亚洲 | 国产一区二区三区 | 亚洲瑟瑟 | 久久久毛片 | 国内精品视频在线观看 | 国产精品成人国产乱一区 | 国产精品美女一区二区三区 | 日韩精品一区二区三区中文在线 | 国产亚洲一区二区精品 | 精品一区二区三区91 | 国产女人与拘做视频免费 | 国内久久 | 欧美中文视频 | 中文字幕亚洲精品 | 日韩欧美网 | 成人亚洲一区 | 免费黄色的视频 | 国产在线精品一区二区三区 | 亚洲激情在线观看 | 国精产品一品二品国精在线观看 | 亚洲一二三区精品 | 中文字幕在线观看视频网站 | 偷拍自拍第一页 | 久久久久久免费毛片精品 | 国产精品一区在线观看 | 精品99爱视频在线观看 | 成人在线精品 | 国产精品日韩高清伦字幕搜索 | 欧美黑人狂野猛交老妇 | 国产性生活一级片 |