const修饰指针的三种情况:
const修饰指针——常量指针
const修饰常量——指针常量
const即修饰指针,又修饰常量
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int b = 10;
//创建常量指针
int* zz;
zz = &a;
//常量指针的意义为:指针的指向可更改,指针指向的值不可修改
//即指针指向的数可改,指向a或b都行
//但指向数的值必须还是10
const int* zz;
zz = &b;//此为正确
int c = 20;
int d = 10;
//创建指针常量
int* zz1;
//指针常量的指向不可修改,指向的数值可更改
//即指向的数不可更改,还是c
//但指向数的值可更改
int* const zz1 = &c;
//zz1=&d; 此为错误
int e = 10;
int f = 10;
//const修饰指针与常量
//即被修饰指针又修饰常量的指针的指向与指向数的值都不可更改
//即zz2只能指向e,不能指向f
//且zz2指向的e的值只能为10,不可修改
const int* const zz2 = &e;
//zz2=&f; 此为错误
//*zz2=20; 此为错误
system("pause");
return 0;
}
所以三种const修饰指针的情况都在上面,指针常量与常量指针的区别都在上面。