问一个关于const变量的问题
==================================================================================编译器通常不为普通const 只读变量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的值,没有了存储与读内存的操作,使得它的效率也很高。例如:
#define M 3 //宏常量
const int N=5; //此时并未将N 放入内存中
......
int i=N; //此时为N 分配内存,以后不再分配!
int I=M; //预编译期间进行宏替换,分配内存
int j=N; //没有内存分配
int J=M; //再进行宏替换,又一次分配内存!
=================================================================================
const 修饰符也可以修饰函数的返回值,返回值不可被改变。例如:
const int Fun (void);
==================================================================================
以上是我在教程上看到的,有几个问题问一下,int i=N /*此时为什么是为N分配内存,而不是为i ?*/按道理来说定义一个变量,应该是为那个变量分配一段内存空间啊,为什么这个时候是为const变量N分配空间,而不是为i分配
int j=N /*为什么此时没有内存分配?*/ 定义一个变量的时候不是应该要给他分配内存空间的么 为什么他这说没有内存分配
什么叫返回值不可被改变?不能理解这句话,返回值就是返回一个值,为什么说什么改变不改变的?希望明白的能举例说明一下,学C时间还不长,所以存在不少问题,请多指教
[ 本帖最后由 果沫 于 2013-1-30 15:21 编辑 ]