| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 961 人关注过本帖
标题:怎样理解对象是"一块存储区"
只看楼主 加入收藏
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 

楼上帮我看一下,这个
#include <iostream>
using namespace std;
int main()
{
const int i=0;
cout<<&i<<endl;
return 0;
}
按照你说的用了const 之后就不用分配内存,那为什么还能输出i的地址呢?


woyaochengshuyidianle 我真的什么也不会
2006-03-22 12:57
mengkeli
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-3-15
收藏
得分:0 

大侠们学了多长时间了

2006-03-22 15:57
husaixia10
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-14
收藏
得分:0 


学习了

2006-03-24 17:19
lizecn
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-23
收藏
得分:0 
以下是引用Bill_Gates在2006-3-22 11:54:00的发言:

不过定义const类型后,就不用分配内存~~

错误的理解, 每一个32位的程序, 在编译的时候就有了一个4G的虚拟空间
const 变量在编译的时候就分配了一个固定的空间. 并且这个空间被标示
为常量, 不可修改. 包括所有初始化的语句比如 int i=0; 等等简单的说就是
赋值语句, 这些都已经在运行之前有了一个虚拟的空间. 象new 动态申请的
需要在实际运行中才能有空间. 注意你申请了一定要去删除, 否则这个空
间不能为本程序再次使用, 但程序结束, 系统收回所有分配的空间.

每个程序在运行时都有4G的虚拟空间, 当调入内存运行的时候, 有操作系统
调度分配内存空间,但实际给的空间绝对不是4G, 是个虚拟的, 可执行文件
本身自己不知道这系统给的4G是真的还是假的, 他不管.

每一个程序执行都单独享用自己的4G的寻址空间.

2006-03-24 19:03
快速回复:怎样理解对象是"一块存储区"
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015238 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved