1. 結構體的宣告
struct
結構體名 {成員表列};
例如:struct student;
int main()
; struct student s2;
struct student *s3 = (struct student*)malloc(sizeof(struct student));
scanf("%s%d %c", s2.name, &s2.age, &s2.***);
strcpy(s3->name, "cyz");
s3->age = 22;
s3->*** = 'f';
printf("%s %d %c\n", s1.name, s1.age, s1.***);
printf("%s %d %c\n", s2.name, s2.age, s2.***);
printf("%s %d %c\n", s3->name, s3->age, s3->***);
return 0;
}2. 結構體長度
原則:(1)結構體的總長度一定是最長成員的整數倍
(2)每個成員的偏移量,一定是該成員長度的整數倍
(3)陣列單獨計算 int name[2]; 長2*4
(4)包含結構體時,內結構體展開寫入,最長成員取內外結構體的最長成員
例:
執行結果:56#include #include #include struct a
;struct student
;int main()
3. 結構體指標陣列(陣列的每個元素都是乙個結構體指標)
main函式中定義變數 :struct student *s[3];
例:
#include #include struct student
;int main()
for(i = 0; i < 3; i++)
return 0;
}
C語言的sizeof與結構體的對齊
devils are in the details.c語言中的sizeof,在我看來,就是乙個能容納很多魔鬼 令人頭疼的細節。在頭疼也要上,誰讓咱們是程式設計師呢。首先要明白,sizeof是c c 中定義的操作符,而不是函式,完成的操作是返回被運算元所占用的記憶體空間空間大小 單位是位元組 其次,s...
c語言 sizeof 求結構體大小
運算子sizeof可以計算出給定型別的大小,對於32位系統來說,sizeof char 1 sizeof int 4。基本資料型別的大小很好計算,我們來看一下如何計算構造資料型別的大小。c語言中的構造資料型別有三種 陣列 結構體和共用體。陣列是相同型別的元素的集合,只要會計算單個元素的大小,整個陣列...
c語言sizeof求結構體的大小
運算子sizeof可以計算出給定型別的大小,對於32位系統來說,sizeof char 1 sizeof int 4。基本資料型別的大小很好計算,我們來看一下如何計算構造資料型別的大小。c語言中的構造資料型別有三種 陣列 結構體和共用體。陣列是相同型別的元素的集合,只要會計算單個元素的大小,整個陣列...