- #include <stdio.h>
- int main()
- {
- struct lv
- {
- char *name; //8字节
- int age; //4字节
- };
- struct lv l1={"栋1",11};
- printf("结构体lv的字节数为:%lu\n",sizeof(struct lv));
- struct lv1
- {
- char name; //1字节
- int age; //4字节
- };
- printf("结构体lv1的字节数为:%lu\n",sizeof(struct lv1));
- struct lv2
- {
- char *name; //8字节
- char c; //1字节
- int age; //4字节
- };
- printf("结构体lv2的字节数为:%lu\n",sizeof(struct lv2));
- /*
- 结构体分配内存空间遵循两个原则:
- 1:每个元素的偏移量(当前元素的首个地址距离整个结构体首个地址的字节数)必须是自己所占字节数的整数倍
- 2:整个结构体的字节数必须是其最大元素所占字节数的整数倍,如果不够,最后一个元素填充字节
- */
- return 0;
- }
复制代码
|
|