一、指针指向的内容不能更改(该处说明是不能通过指针修改,并不是说不能通过变量名修改),如下例子:
#include <iostream>
using namespace std;
int main(){
int age = 2;
const int *n = &age; //定义一个指向整型变量的指针,该指针指向的内容不能变;
//*n = 3; 不能通过*n方式去修改,因为上面的const 指明n指针指向的的内容*n不能更改;
age = 4; //但是可以通过变量age去修改。
cout<<*n;
}
二、指针的指向不能更改,但指针指向的内存地址存储的内容可以修改。
#include <iostream>
using namespace std;
int main(){
int age_1 = 3;
int * const n_pt = &age_1; //定义一个指向整型的指针n_pt,该指针指向不能变化,只能指向age变量对应的内存地址;
*n_pt = 5; //指针指向的区域内容可以更改。
int age_2 = 4;
//n_pt = &age_2; //但是不能改变n_pt的指向,如原来n_pt指向age_1的内存地址,现在指向age_2是不允许的。
cout <<*n_pt;
}
#include <iostream>
using namespace std;
int main(){
int age_1 = 3;
const int * const n_pt = &age_1; //定义一个指向整型的指针n_pt,该指针指向不能变化,只能指向age变量对应的内存地址;
//*n_pt = 5; //指针指向的区域内容不可以更改。
int age_2 = 4;
//n_pt = &age_2; //但指向也不能更改。
cout <<*n_pt;
}