C語言 結構體宣告與sizeof計算結構體大小

2021-08-21 21:08:46 字數 1085 閱讀 2508

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)包含結構體時,內結構體展開寫入,最長成員取內外結構體的最長成員

例:

#include #include #include struct a

;struct student

;int main()

執行結果:56

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語言中的構造資料型別有三種 陣列 結構體和共用體。陣列是相同型別的元素的集合,只要會計算單個元素的大小,整個陣列...