我分解机又来了,今天我们来看看const指针,
在前面的文章里面我已经讲解了使用左值解引来修改指针指向的原变量的例子(参考本篇博客), 但是原变量如果是const,值是不能被修改的。
//const指针
//作者:分解机226
#include <iostream>
using namespace std;
int main()
{
const int boli = 3;
const int* daijie = &boli;
cout << "*daijie:" << *daijie << endl;
const int boli1 = 4;
daijie = &boli1;
cout << "*daijie:" << *daijie << endl;
int boli3 = 5;
daijie = &boli3;
cout << "*daijie:" << *daijie << endl;
return 0;
}
运行结果
我们可以看到,要定义一个const对象指针,我们就要在对象类型名后加上星号,这里需要注意的是虽然daijie的值不能被修改,但是它本身指向的地址可以修改,
//const指针
//作者:分解机226
#include <iostream>
using namespace std;
int main()
{
int boli1 = 3;
int boli2 = 4;
int *const daijie = &boli1;
daijie = &boli2;
const int boli3 = 5;
const int boli4 = 6;
const int* const daijie2 = boli3;
daijie2 = boli4;
return 0;
}
报错
本例中尝试修改const指针而导致的编译错误,const指针的创建 语法是将const移到星号后面,一开始boli1指向daijie,而当我们尝试将boli2的地址赋值给boli1的时候编译就会出错,