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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lvzhehappy 中级黑马   /  2015-4-16 22:30  /  1192 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

由于c/c++尝尝笔试会考到sizeof的考点,所以我就总结一下,分享给大家,希望能够带来帮助sizeof:一个对象或者其他内型所占内存的字节数
基本数据类型
sizeof(int) 4
sizeof(float)4
sizeof(long int)8
sizeof(short int)2
sizeof(char )1

指针变量
指针变量的所占的内存大小都是相等的,所以sizeof(指针变量名)=4;
int *x;
char *str;
sizeof(x)=sizeof(str)=8;我的编译结果是8,估计有的会是4,跟编译器有关
sizeof(*x)=4;sizeof(*str)=1;

数组
char str[]="hello";sizeof(str)=6;末尾有一个‘\0’,而strlen(str)=5,这是两者最大的区别
int a[10];sizeof(a)=40;

结构体
strcut person
{
    int age;
    char *name;
   }
}
sizeof(age)+sizeof(name)=1+8=9;由于结构体内存大小是元素中最大结构长度的最小公倍数,
所以9不是8的最小公倍数,补齐就是16,则sizeof(struct person)=16;


3 个回复

倒序浏览
不错,学习一下
回复 使用道具 举报
wws 发表于 2015-4-16 22:41
不错,学习一下

多谢支持
回复 使用道具 举报
顶顶顶!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马