C++ 結構體相關知識(持續更新)


結構體是組織數據結構的方式,它類似於類,但是不同於類,主要用於組織數據與數據之間的結構

與類的區別

聲明結構體的方式和聲明類的方式大致相同,其區別如下

  • 使用關鍵字 struct 而不是關鍵字 class。
  • 儘管結構體可以包含成員函數,但它們很少這樣做。所以,通常情況下結構體聲明只會聲明成員變量。
  • 結構體聲明通常不包括 public 或 private 的訪問修飾符。
  • 類成員默認情況是私有的,而結構體的成員則默認爲 public。程序員通常希望它們保持公開,只需使用默認值即可。
struct Package {
  int ctLength=0; // 內容長度
  char* token=""; // token值
  Package(){
   // 這裏我們可以通過構造函數的方式初始化 這個結構體,但是也不提倡這樣做,因爲結構體儘量不要有除變量成員以外的東西
  }
  // private int demo1; 甚至可以有私有成員,但通常不這樣做
  // void convert(){} 也可以有函數作爲成員,但通常也不這樣做
  // ..... 還可以有很多
}; // 最後這個分號一定要有

內存分佈圖

在這裏插入圖片描述

創建結構體實例

Package p1,p2,p3; // 這裏創建了數據類型爲Package的實例p1,p2,p3

訪問成員

p1.ctLength; // 訪問ctLength成員變量
p1.token; // 訪問token成員變量

嵌套結構體

在一個結構體中某個成員的數據類型可以是另一個結構體,其內存模型是所有結構體的成員之和

struct S1{
  char *name;
  int age;
}; // 這裏聲明瞭S1結構體

struct S2{
  int id;
  S1 *s1; // 這裏我們聲明瞭S2結構體中包含有指向S1變量的成員指針
}; // 這裏聲明瞭S2結構體
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章