本文最后更新于 325 天前,其中的信息可能已经有所发展或是发生改变。
1.const在指针中的应用
使用const修饰指针,有两种用法,达到两种作用:
- 让指针指向一个常量对象
- 让指针本身就成为常量
1.1指针指向一个常量对象
例程1:
int num = 10;
const int *p = #
此例子中,不代表num是一个常量,而是不能通过指针p来修改num的值
例程2:
const int num = 10;
const int *p = #
int *p = #//错误
此例中,需要注意的是第三行错误的示例。
指向常量对象的指针必须也是常量
如果指针不加const修饰,就意味着允许通过指针修改指向的对象,与指向的常量对象相矛盾。
底层是常量,则指向它的高层必须也是常量,同样适用于二级指针等
1.2成为常量指针
例程3:
int num = 10;
int *const p = #
注意const的位置,这个位置的const修饰后表示,const为常量指针,即只能指向这一个量
2.const在函数中的应用
2.1const在函数参数内
例程4:
void a(const int *b);
表明了b在这个函数中是一个常数值,即函数只能调用,不能修改
与形参不改变实参不同(不会报错),这里如果修改就如同修改常量,会报错
2.2const在函数名前面
比如:
const int a();
修饰返回值,意义不大
2.3const在函数名后面
class A{
public:
int const a();
}
使其成为常成员函数
只能作为类的成员
也是只读,不会修改对象本身,应对于类的指针this的调用