const
定义:修饰一个变量,表示不能在作为赋值的左值。
c中:
(1)const修饰的变量不一定要初始化。
(2)const修饰的变量变为常变量。
(3)不能作为常量使用,例如定义数组的大小。
(4)常变量的编译方式和普通变量没有区别。
c++中:
(1)const修饰的变量必须初始化。
(2)const修饰的变量变为常量。
(3)可定义数组的大小(完全可以当作常量使用)。
(4)常量的编译方式,在编译的过程中,把常量名字替换成值(取常量地址时,不需要替换)。
(5)若初始值是变量,那么c++中的常量,变为c的常变量。
const和一级指针的结合?
保证const安全:代码上不能有直接或间接的修改常量值的可能。
const和多级指针的结合?
是共存亡的关系(即要么等号两边都有const 要么都没有)。
引用以及const和引用的结合
左边有类型,叫引用;没类型叫,取地址。
引用:更安全的指针。
1.变量定义时,名字左边有&符号,就是定义了一个引用变量。
2.引用必须初始化,指针不需要。
3.引用定义时,引用了哪块内存,就不能改变了也不能在引用其它内存块。
4.在c++99中只能定义一级引用,不能出现多级引用(c++11中有二级引用)。
5.使用引用变量,永远访问的是它所引用的内存(不能访问4字节的指针内存)。
引用成功必须满足以下条件:
1.引用必须初始化。
2.初始化的值能取地址:
普通的引用变量蹦引用常量,必须是常引用才或const指针能引用或指向常量;