楼上帮我看一下,这个
#include <iostream>
using namespace std;
int main()
{
const int i=0;
cout<<&i<<endl;
return 0;
}
按照你说的用了const 之后就不用分配内存,那为什么还能输出i的地址呢?
woyaochengshuyidianle 我真的什么也不会
不过定义const类型后,就不用分配内存~~
错误的理解, 每一个32位的程序, 在编译的时候就有了一个4G的虚拟空间
const 变量在编译的时候就分配了一个固定的空间. 并且这个空间被标示
为常量, 不可修改. 包括所有初始化的语句比如 int i=0; 等等简单的说就是
赋值语句, 这些都已经在运行之前有了一个虚拟的空间. 象new 动态申请的
需要在实际运行中才能有空间. 注意你申请了一定要去删除, 否则这个空
间不能为本程序再次使用, 但程序结束, 系统收回所有分配的空间.
每个程序在运行时都有4G的虚拟空间, 当调入内存运行的时候, 有操作系统
调度分配内存空间,但实际给的空间绝对不是4G, 是个虚拟的, 可执行文件
本身自己不知道这系统给的4G是真的还是假的, 他不管.
每一个程序执行都单独享用自己的4G的寻址空间.