A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© i_iOS 中级黑马   /  2015-10-2 00:13  /  718 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //为了增加Cpu寻址的效率,结构体分配内存空间遵循的两个原则(对齐原则/对齐算法)
  2. //1每个元素的偏移量(当前元素首地址距离当前结构体首地址的字节数)必须是自己所占字节数的整数倍
  3. //2整个结构体的字节数必须是其最大元素所占字节数的整数倍,如果不够,最后一个元素填充字节
  4. #include <stdio.h>

  5. int main(){
  6.     struct Person{
  7.         char *name;//指针,8个字节
  8.         int age;//4字节
  9.     };
  10.     printf("%lu\n",sizeof(struct Person));
  11.    
  12.     struct Person1{
  13.         char *name;//指针,8个字节
  14.         int age;//4字节
  15.         int money;//4
  16.     };
  17.     printf("%lu\n",sizeof(struct Person1));
  18.    
  19.     struct shiyan{
  20.         int a;
  21.         char c;
  22.     };
  23.     printf("%lu\n",sizeof(struct shiyan));
  24.     struct shiyan2{
  25.         int a;
  26.         int b;
  27.         int c;
  28.         char d;
  29.     };
  30.     printf("%lu\n",sizeof(struct shiyan2));
  31.   
  32.     return 0;
  33. }
复制代码

2 个回复

倒序浏览
????????????????
回复 使用道具 举报
结构体内存分配的两个原则一定要牢记,时不时翻来看看挺好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马