下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、sizeof 分析1.在32位系统中不同类型的内存分配1.1基本类型cpp代码Tj1. sizeof( int);/ = 42. sizeof( double);/ = 83. sizeof( char);/=14. sizeof( bool);/=15. sizeof( short);/=26. sizeof(float);/ = 47. sizeof( long);/=41.2指针指针在32位系统中占4个字节Cpp代码一1. sizeof( int *);/ = 42. sizeof( double *);/ = 43. sizeof( char *);/ = 41.3数组数组的sizeo
2、f返回整个数组所占的字节数,即(数组元素个数x每个元 素所占字节)。Cpp代码一1. int ai = 1,2;2. sizeof(ai);/ = 2*4 = 8常量字符串与字符数组的内存分配方式相同Cpp代码-1. char ac = "abed" 注意数组末尾的字符串终结符'0'2. sizeof(ac);/ = 5*1 = 53. sizeof("abcd");/ = 5*1 = 5数组和指针所占的字节数不同,应注意区分1. int *pi = new int10; 这是指针2. sizeof(pi);/ = 43.3. int a
3、i10;4. int *p = ai;这还是指针5. sizeof(p);/ = 47.6. double* (*a)36;/看成(double *) (*a)36,即一个 3 >6 的二维数组,数组元素为指针,指向double类型。7. sizeof(a);/ = 4,a为指向上述二维数组的指针8. sizeof(*a);/ = sizeof(double *)*3*6 = 72 ,*a 表示上述二维数组9. sizeof(*a);/ = sizeof(double *)*6 = 24 ,*a 即 *(*a),表示 double*6,是元素为double指针的一维数组。10. size
4、of(*a);/ = sizeof(double *) = 4 ,表示上述一维数组中的第一个元素,元素类型为double指针。11. sizeof(*a);/ = sizeof(double) = 8,表示上述数组首元素指向的double 类型。函数形式参数中的数组会蜕变为指针,原因是数组参数“传址调用”, 调用者只需将实参的地址传递过去。有一种情况例外,那就是参数是指向数组 的指针。1. void acf(char p3)参数类型是int,表示指向int的指针2. 3. sizeof( p );/ = 44. 5. void aif( int p)参数类型是int,表示指向int的指针6.
5、7. sizeof( p );/ = 48. 9. void pif( int (*p)6) /参数类型是int (*)6,表示指向int数组的指针10. 11. sizeof( p);/ = 412. sizeof( *p );/ = sizeof(i nt)*6 = 2413. 14. void ppf( int *p6)/参数类型是int *,表示指向int指针的指针15. 16. sizeof( p );/ = 417. sizeof( *p );/ = 418. 1.4.类和结构体的内存分配。空类或空结构体占一个字节Cpp代码®1. class CEmpty ;2. siz
6、eof(CEmpty); / = 13.3. struct SEmpty ;4. sizeof(SEmpty); / = 1非空类和结构体所占字节为所有成员占字节的和,但是不包括成员函数 和静态成员所占的空间。Cpp代码1. class Clnt : public CEmpty 2. int i;3. ;4. sizeof(C Int); / = 4;5.5. class CFunc 6. void f() 7. ;8. sizeof(CFu nc); / = 1;10.9. struct Sint: SEmpty 10. static int i;11. ;12. sizeof(SInt);
7、 / = 1;字节对齐为了加快计算机的取数速度,编译器默认对内存进行字节对齐。对结构体(包 括类)进行字节对齐的原则是:的大小所整除;offset )都是成员大小的整数倍,如有需要);1 )结构体变量的首地址能够被其最宽基本类型成员2)结构体每个成员相对于结构体首地址的偏移量( 编译器会在成员之间加上填充字节( in ternal addi ng3)结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(traili ng paddi ng)。Cpp代码1. struct SBytel2. 3. double d; / 偏移量 074. char j; / 偏移量 85. int a; /偏移量1215,由于9不能整除4,故先填充9116. ;7. sizeof(SByte1); / = 168.8. struct SByte29. 10. char j;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育心理学题库检测试卷A卷附答案
- 2024年度山西省高校教师资格证之高等教育法规能力提升试卷A卷附答案
- 2024年度年福建省高校教师资格证之高等教育学练习题及答案
- 全国职业院校技能大赛中职组(母婴照护赛项)考试题及答案
- 四年级数学(小数加减运算)计算题专项练习与答案
- 建筑会议纪要
- 内蒙古英语高二上学期期末试卷及解答参考(2024年)
- 高温热管换热器的稳定性设计和结构参数优化
- 2024房产领域联合投资建设协议
- 吊车租赁业务协议2024详细条款
- 小学科学教育科学三年级上册天气《认识气温计》教学设计
- 液化气站气质分析报告管理制度
- 砍伐工程方案35963
- 《大医精诚》说课(新)
- 牛羊屠宰管理办法
- 《微观经济学》课程思政教学案例(一等奖)
- DBJ50T-232-2016 建设工程监理工作规程
- 国际人力资源管理课程教学大纲
- 深信服园区级双活数据中心
- T-CSCS 016-2021 钢结构制造技术标准
- 回弹强度对应表
评论
0/150
提交评论