• 正文
    • 1.結構體怎么初始化
    • 2.結構體的sizeof怎么計算
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

結構體怎么初始化 結構體的sizeof怎么計算

2022/02/22
563
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

結構體是一種用戶自定義的數據類型,它可以包含多個不同類型的變量。在C語言中,結構體需要被正確地初始化才能使用,并且其實際所占用的內存空間大小需要通過sizeof運算符來計算。

1.結構體怎么初始化

結構體的初始化是指給結構體成員變量賦初值的過程。結構體變量的初始化可以有以下幾種方式:

  • 按順序初始化,即按結構體定義的順序逐一給成員變量賦值。
  • 按名稱初始化,即直接指定每個成員變量的名稱和值。
  • 使用C99標準新增的“設計器初始化”(designated initialization)特性,即可以指定某個成員變量的初始化值,而另外一些未指定的成員變量會以0或NULL的形式進行默認初始化。

比如:

struct Student {            char name[20];            int age;            float score;        };        struct Student s1 = {"Tom", 18, 89.5};        struct Student s2 = {.name = "Jerry", .score = 92.0}; //只初始化部分成員變量        struct Student s3 = {[1] = 20, [0] = "Bob"}; //指定某些成員變量的初始化值

2.結構體的sizeof怎么計算

C語言中,計算結構體所占用的內存空間大小需要使用sizeof運算符。sizeof運算符返回一個對象或類型所占用的字節(jié)數。

當對結構體類型進行sizeof運算時,會得到該結構體所占用的實際字節(jié)數,其計算方法為:

struct Student {            char name[20];            int age;            float score;        };        sizeof(struct Student) = sizeof(name) + sizeof(age) + sizeof(score)                                 = 20 + 4 + 4                                 = 28

由于結構體可能存在內存對齊的問題,因此sizeof計算結果可能會比實際使用的內存空間稍微大一些。

相關推薦

電子產業(yè)圖譜