所以编译途中遇到使用const变量时,则直接从符号表中取出常量.
只要当该const变量为全局(使用extern声明过),或者被使用&操作符时,才会被分配存储空间....这是因为使用&c时,会从符号表中取出c的值,并将0存在一个新的分配空间地址里,所以*p修改的只是分配出来的空间地址内容,而c还是常量.
3.2 const和define区别
是不是感觉C++中的const....
3.3 指针const
指针const分为两种: 底层const, 顶层const
(普通变量的const(或引用)永远是顶层const,也就是说,const int 和int const本质都一样...其实很好理解,比如 const int *p, 修饰*p是个const常量.而*p是指向对象的内容.所以表示指向对象的内容是常量
但是可以通过其它方式修改内容,例如:
int a=1,b=3;
const...(位于*右侧)
指针常量,表示不能更改指针指向的地址,只能修改其内容(定义时必须被初始化)
其实很好理解,比如 int * const p, 修饰 p是个const常量.而 p是指向对象的地址.所以表示指向对象的地址是个常量