★常量指针:指向常量的指针,在指针定义语句的类型前加const,表示指向的对象是常量。
常量指针定义"const int* pointer=&a"告诉编译器,pointer是常量,不能将pointer作为左值进行操作。
★指针常量定义"int* const pointer=&b"告诉编译器,pointer(地址)是常量,不能作为左值进行操作,但是允许修改间接访问值,即*pointer(地址所指向内存的值)可以修改。
★常量指针常量:指向常量的指针常量,可以定义一个指向常量的指针常量,它必须在定义时初始化。
定义"const int* const pointer=&c"
告诉编译器,pointer和*pointer都是常量,他们都不能作为左值进行操作。const
★总结:有一个规则可以很好的区分const是修饰指针,还是修饰指针指向的数据——画一条垂直穿过指针声明的星号(*),如果const出现在线的左边,指针指向的数据为常量;如果const出现在右边,指针本身为常量。而引用本身就是常量,即不可以改变指向。