1. 結構體的sizeof
題目:sturct aa
;struct bb
;struct bb a;
計算 sizeof(a) 的值
計算過程:
結構體a為bb型別,計算sizeof(a),就是將bb型別中,所有的成員的sizeof求總和。如果有陣列,則乘上陣列的長度。
所以1. bb 中a的長度 2(int);
2. bb 中b的長度 4(float);
3. bb 中的c又為結構體,其型別為aa. 其長度為:
num的長度 2(int)
name的長度 為 1 * 10 = 10 (char長度為1)
所以總長度為 2 + 4 + 2 + 10 = 18. 即sizeof(a) =18
2. 陣列和指標
double a;
double *b;
double c[5];
char* pt[3];
char pq[3];
分別計算 a, b , c, pt, pq 的 sizeof
解答:size(a) = 8;
size(b), 為求指標的sizeof,永遠為2;
size(c), 8 * 5 = 40;
size(pt), 首先pt為乙個陣列,長度為3。並且裡面的元素都是指向char的指標。
所以sizeof(pt) = 3 * 2 = 6
sizeof(pq), = 3
陣列指標 結構體指標
指向指標結構體 include include int main struct student stu 1 定義struct student型別的變數stu1 struct student p 定義指向struct student型別資料的指標變數p p stu 1 p指向stu1 stu 1.nu...
結構體指標陣列
struct h a 100 b,c 3 d a是乙個結構體陣列,已經有100個節點了。不需要再分配空間了。b是乙個結構體變數,也已經有空間了,就和int b 已經有空間了一樣。c是乙個指標陣列,c也已經有空間了,有3個元素,但是這三個元素是還沒有分配空間的指標,所以要用malloc分別為他們分配記...
結構體 指標 陣列
若我們用 0x9999 來標記記憶體位址,則 0x9999 表示該位址記憶體中儲存的數值 變數int a a 0x9999 1 a 0x9999 指標int a a 0x8888 0x9999 a 0x8888 0x9999 1 a 0x8888 結構體變數 struct mystruct s s ...