首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

占用字节数如何算

2012-12-19 
占用字节数怎么算想看看数据类型是怎么占用字节的,有哪位高手可以给我讲讲,我自己编了个程序可是结果和我

占用字节数怎么算
想看看数据类型是怎么占用字节的,有哪位高手可以给我讲讲,我自己编了个程序可是结果和我想的不一样
#include<iostream>
struct student
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
int main()
{student student1={10001,"zhang xin",'M',19,90.5,"shanghai"};
sizeof student1;
std::cout<<(sizeof student1) ;
return 0;
}
这个算是不是4+20+1+4+4+30
[最优解释]
怎么算 当然是用sizeof 
然后 搜索 内存对齐 应该能解决你的疑问 
[其他解释]
自己上网搜搜内存对齐相关的

对于这题应该是 4 + 20 + 1(+3) + 4 + 4 + 30(+2) = 68
[其他解释]
VC调试时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
(Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)

[其他解释]
楼主首先搞清楚字节跟比特的区别 
[其他解释]
什么意思?你说的是什么
[其他解释]
嗯,这个程序的显示结果是68.
[其他解释]
能不能截个图,如何看内存窗口
[其他解释]
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/dv_vsdebug/html/7f7a0439-10e4-4966-bb2d-51f04cda4fe2.htm

“内存”窗口
只有在“选项”对话框中的“调试”节点下启用了地址级调试后,“内存”窗口才可用。

利用“内存”窗口可以看到应用程序所占用的内存空间的情况。在“监视”窗口、“快速监视”、“自动”窗口和“局部变量”窗口中都可看到内存中特定位置初变量的内容,但在“内存”窗口中可看到尺寸较大的图像。这对于检查大片的数据(如缓冲区和大的字符串)很方便,在其他窗口中显示就不太好。但是,“内存”窗口不仅限于显示数据,按照定义“内存”窗口可以显示内存空间中的任何内容,无论它是数据、代码或是未分配内存中的无用随机位。

在“内存”窗口中检查内存内容时,可以使用该窗口用户界面中的滚动条在内存中导航。可以键入内存地址或者使用拖放操作。如果知道要查看的数据项地址,直接键入地址是较方便的方式。可以键入指向要查看的数据项的指针或使用 address-of 运算符的表达式,来获得数据项的地址。

可以自定义“内存”窗口以不同格式显示数据,包括十六进制或十进制格式。有关更多信息,请参见自定义“内存”窗口显示。

“内存”窗口对于 Script 或 SQL 是不可用的,原因是这些语言不能识别内存概念。

“内存”窗口任务
下列主题将对可使用“内存”窗口执行的任务进行说明: 

如何:在内存中向上或向下翻页 

如何:选择内存位置 

如何:跟踪内存中的指针 

如何:切换“内存”窗口中的活动计算 

如何:自定义“内存”窗口显示 

如何:切换“内存”窗口工具栏 

请参见
概念
查看调试器中的数据

ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/dv_vsdebug/html/b4688410-02e8-48f3-8140-1eae033493a5.htm
如何:选择内存位置
只有在“选项”对话框中的“调试”节点下启用了地址级调试后,“内存”窗口才可用。

如果要立即转到内存中的选定位置,可以使用拖放操作或在“地址”框中编辑值的方法来这样做。“地址”框不仅接受数字值,而且接受计算结果为地址的表达式。默认情况下,“内存”窗口将“地址”表达式视为活动表达式,即程序执行时将对该表达式进行重新计算。活动表达式使用起来非常方便。例如,可以使用它们查看指针所指向的内存。

使用拖放选择内存位置
在任一窗口中选择内存地址或选择包含内存地址的指针变量。

将地址或指针拖到“内存”窗口。

通过编辑选择内存位置
在“内存”窗口中选择“地址”框。

键入或粘贴要查看的地址,然后按 Enter。


热点排行