成人免费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技術棧公眾號

主站蜘蛛池模板: 台湾av在线| 99re热精品视频 | 日韩一区二区三区在线观看 | 人人看人人爽 | 日韩欧美一级精品久久 | 国产精品久久久久aaaa九色 | 久久久久久99 | 国产区在线看 | 福利精品 | 久草视频观看 | www.youjizz.com日韩| 91视频大全 | 日本免费视频在线观看 | 国产精品一区二区免费 | 色久影院 | 亚洲一区自拍 | 午夜在线小视频 | 视频在线一区二区 | 一区二区三区在线免费观看 | 欧美a级网站 | 亚洲视频在线观看免费 | 亚洲一区二区三区在线观看免费 | 精品久久久久久久 | cao在线 | 欧美日韩精品久久久免费观看 | 日韩中文字幕在线播放 | 黄a大片 | 精品国产欧美一区二区三区不卡 | 人人操日日干 | 超碰在线播 | 成人中文字幕在线观看 | 精品一二三区在线观看 | 天堂av中文 | 韩国精品在线 | 成人免费观看网站 | 久久精品国内 | 91视频免费黄 | 在线欧美 | 男人的天堂中文字幕 | 91av大全| 奇米久久久|