struct t{
char days[20];
int date;
char x;
struct t *next;
}*head
printf("%ld\n", sizeof(head));
其中sizeof(*void)=8
,sizeof(int)=4
,sizeof(char)=1
爲什麼sizeof()這個結構體8?
爲什麼它打印8?
struct t{
char days[20];
int date;
char x;
struct t *next;
}*head
printf("%ld\n", sizeof(head));
其中sizeof(*void)=8
,sizeof(int)=4
,sizeof(char)=1
爲什麼sizeof()這個結構體8?
爲什麼它打印8?
請注意,head
是指針而不是結構的實際實例。這意味着sizeof(head)
是指針的大小,在您的系統上恰好爲8(注意sizeof(void*)
也是8)。
希望這會有所幫助!
所以它實際上並沒有在結構中加入元素的大小。好的,謝謝 – user2821523
@ user2821523完全正確 - 只是詢問指針佔用了多少空間。 – templatetypedef
head
是一個指向struct t
的指針,它是8字節,因爲我假設你正在運行一個x64程序。如果你想要的底層類型的大小,這樣做:
sizeof(*head)
因爲它的指針? – FDinoff
因爲你忘記了星號。 'sizeof(* head)'會給你你正在尋找的東西。投票結束(錯字)。 – dasblinkenlight