所以我在看这段代码:
#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;
}
Run Code Online (Sandbox Code Playgroud)
输出如下:
sizeof(struct Student) = 36
sizeof(s) = 36
sizeof(struct Student*) = 4
sizeof(sp) = 4
Run Code Online (Sandbox Code Playgroud)
为什么尺寸为struct Student*4,为什么尺寸sp也是4?我的powerpoint没有详细说明这一点.我知道为什么的大小struct Student和s为36:因为32个char(对于一个字节+4字节int)= 36总.
struct Student *是一个指针,它几乎不包含任何数据,它只是一个指针.但指针存储在某处并占用一些空间,在您的情况下为4个字节.
struct Student但是,它是一个功能齐全的结构,占用的空间与您计算的数量相同(数组和id占用空间).
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |