一、常量指针
1、常量指针指向没有变化,常量指针可以通过指向的变量变化。
int i=10;
const int* p = &i;
cout << p << endl;
cout << *p << endl;
i=11;
cout << p << endl;
cout << *p << endl;
return(0);
输出结果
0x7ffffa0de6a4
10
0x7ffffa0de6a4
11
但指针p的指向不能变化,比如:
在
const int* p = &i
之后再将*p赋值
*p = y;
程序将出错
但指针p的内容可以随变量i的变化而变化。这种用法等同于
int const *p = &i
2、常量指针指向没有变化,常量指针可以直接修改内容。
int i=10;
int * const p = &i;
*p = 12;
cout << p << endl;
cout << *p << endl;
i=11;
cout << p << endl;
cout << *p << endl;
return(0);
输出结果
0x7fffe0528af4
12
0x7fffe0528af4
11
const int &p = i;
首先引用的变量不能变化,而且在声明的时候必须初始化。