所以我在看這段代碼:C中結構體大小的解釋?
#include <stdio.h>
struct Student {
int id;
char name[32];
} s, *sp;
int main() {
printf("sizeof(structStudent) = %u\n", sizeof(structStudent));
printf("sizeof(s) = %u\n", sizeof(s));
printf("sizeof(structStudent*) = %u\n", sizeof(structStudent*));
printf("sizeof(sp) = %u\n", sizeof(sp));
return 0;
}
輸出如下:
sizeof(struct Student) = 36
sizeof(s) = 36
sizeof(struct Student*) = 4
sizeof(sp) = 4
爲什麼是struct Student*
4的大小,以及爲什麼是sp
也是4的大小?我的powerpoint沒有詳細說明這一點。我知道爲什麼struct Student
和s
的大小爲36:因爲32 char
字節+ 4字節(對於一個int
)= 36總數。
這甚至沒有編譯。 – EOF
大小爲4的指針是32位系統上的指針。 –
'sp'有'struct student *'類型,所以這兩個東西報告相同的大小 –