常数是没有地址还是没有确定的地址?那他在内存里是怎么储存的呢?
有地址,但你不能寻址.跟没有一样
嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
有地址,但你不能寻址.跟没有一样
“有地址,但你不能寻址.跟没有一样”这句话值得探讨!按照c++编译器的规则有2种常量定义方式
其一:
#define PI=3.14;
PI(本质是宏)如果也看成常量的话,那么PI是没有地址可言的,编译器在遇到PI的地方用3.14替换它,所以没有地址
其二:
const int a=3;
这里的a本质还是一个变量,只是被限制了修改。但是a的地址还是可以取出来的(也就是可以寻址)!!!只是不能修改而已。要不然也没有别名(引用)这一说了。下面这个程序可以看出解释常量的地址问题
#include <iostream>
using namespace std;
void main()
{
const int a =10;
cout<<&a<<endl; //显示a的地址
const int* b = &a; //取出a的地址赋给常量指针b,注意:指针以及下面的引用前一定要用const修饰
cout<<*b<<endl;
const int& c= a; //引用的本质就不详细解释了吧???
cout<<c<<endl;
}