把結構體與陣列之間的轉換

2021-09-22 01:31:16 字數 1170 閱讀 8920

二維陣列和一維陣列的轉換很簡單,直接是強制轉換即可,例如:

#include

#include

unsigned char aa[4][4] = ,,,};

int main()

列印結果:

如果是定義乙個結構體呢:

struct cc

;main函式裡面定義變數初始化

struct cc dd = ,

.data2 = 7,

.data3 = 8,

.data4 =

};for(i = 0;i < 39;i++)

列印結果:

如果是結構體裡面套結構體呢?

下面給乙個完整可以執行的程式:

#include

#include

unsigned char aa[4][4] = ,,,};

struct cc

;struct ee;

int main(),

.data2 = 7,

.data3 = 8,

.data4 =

};struct ee bb = ,

.data2 = 7,

.data3 = 8,

.data4 = },,

.data2 = 7,

.data3 = 8,

.data4 = },,

.data2 = 7,

.data3 = 8,

.data4 = },,

.data2 = 7,

.data3 = 8,

.data4 = }}

};for(i = 0;i < 16;i++)

printf("\n\n");

for(i = 0;i < 39;i++)

printf("\n\n");

for(i = 0;i < 39*4;i++)

}列印結果:

關於結構體陣列之間的複製

對於兩個定義的結構體陣列a和b,假如我們已經給a初始化了,這時候想把結構體陣列a中的每一項都複製到b中相對應的每一項時,我們可以使用用memcpy函式。首先肯定要在開頭引用標頭檔案,memcpy函式在string.h庫中 include結構體陣列的定義 struct nodem size n siz...

C語言結構體與C 結構體之間的差異

在 c 語言中,我們不能在結構體內部定義成員變數。但在 c 中,結構體不僅可以擁有成員變數,還可以擁有成員方法。在 c 語言中,我們不能直接初始化結構體成員變數。但在 c 中可以這樣做。include struct record intmain 輸出 7 在 c 語言中,在定義結構體變數時,我們需要...

C 結構體與陣列的資料轉換 下(socket)

引言 經過上章的講解,已經知道了記憶體對齊。那麼我們言歸正傳 一 結構體 陣列 二 陣列 結構體 由於陣列儲存是連續的,所以在相互轉換的時候記憶體也要對齊 struct st temp st temp temp temp.iage 4 temp.iyear 2018 temp.imonth 6 in...