sizeof深入理解(vcbase).doc

日期: 2024-10-25 09:01:54|浏览: 10|编号: 104999

友情提醒:信息内容由网友发布,请自鉴内容实用性。

sizeof深入理解(vcbase).doc

深入理解()1.运算符的结果类型是头文件中的类型。该类型保证保存由实现创建的最大对象的大小(以字节为单位)。 2.它是一个运算符和一个函数。 3.可以使用type作为参数,但只能使用char*作为参数,并且必须以''\0''结尾。也可以使用函数作为参数,如:();("%d\n",(f()));输出结果为(短),即2.4。数组参数不会退化,并且在传递时退化为指针。 5.大多数编译器在编译时已经计算出变量的类型或长度。这就是为什么 (x) 可以用来定义数组的维度。 [20]="";inta=(str );//a=10;intb=(str);//且b=20;6.结果只能在运行时计算。它用于计算字符串的长度。该类型不占用内存。尺寸。 7.如果是类型,则必须添加括号。如果是变量名,可以不加括号。

这是因为它是一个运算符而不是一个函数。 8.当应用于结构类型或变量时,返回实际大小。当应用于静态空间数组时,返回整个数组的大小。该运算符无法返回动态分配的数组或外部数组的大小。 9. 当数组作为参数传递给函数时,传递的是指针而不是数组。传递的是数组的首地址,如:fun(char[8])fun(char[])等价于fun(char*)。在 C++ 中传递数组时,始终传递指向数组第一个元素的指针。编译器不知道数组的大小。如果想知道函数Size内数组的大小,需要这样做:进入函数后复制出来,长度是从另一个形参fun(*p1,){*buf=[ len+1](buf,p1,len);} 相关内容参见:C++ ?10。为了计算结构变量的大小,必须讨论数据对齐的问题。为了达到最快的CPU访问速度(这个与CPU的访问操作有关,详细介绍请参考一些计算机原理书籍),C++经常将结构体变量中成员的大小改为4的倍数或8 处理数据时。计算一下,这就是所谓的数据对齐()。

这可能会浪费一些内存,但理论上速度更快。当然,这样的设置在读写其他应用程序生成的数据文件或者交换数据时会带来不便。 MSVC++中的对齐设置有时与实际结果不同。一般在VC++中添加#(n)设置即可。或者如果想按字节存储而不进行数据对齐,可以将对话框中的页面修改为按字节对齐。 11。运算符不能用于函数类型、不完整类型或位字段。不完整类型是指存储大小未知的数据类型,例如存储大小未知的数组类型、内容未知的结构体或联合类型、void类型等。例如(max),如果此时变量max定义为() time, () 如果它被定义为 [MAX] 并且 MAX 未知,则 (void) 不是正确的形式。

提醒:请联系我时一定说明是从浚耀商务生活网上看到的!