
X.MyInt=18;
这句代码会在栈中分配内存,并初始化这块内存为18;存的是值不是引用。
Y=X,正如你所说的。由于X、Y都是引用类型,所以会在托管堆中分配内存。
这句代码之后,Y就会指向系统为X分配的那块内存。实际上是同一块内存,当然修改了Y,X也会变了。
当然了,你可以自己写个测试程序,点击调试,在VS2008的调试者卜答菜单下的窗口中选择内存,可以查看X、Y的内存地址。它们的地址是一样的。
string是按引用存储的。
可以用GlobalMemoryStatus()函数实现,示例:#include <stdio.h>
#include <Windows.h>
int main(int 雹岁argc, char *argv[])
{
MEMORYSTATUS memStatus
GlobalMemoryStatus(&memStatus)
printf("%lu\n", memStatus.dwTotalPhys 运判/ 1024 / 1024)//输出系统内存的总量
printf("%lu\n", memStatus.dwAvailPhys / 1024 旁肆改/ 1024)//输出系统内存的当前可用量
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)