/*
Module: 常量指针与指针常量.cpp
Notices: Copyright (c) 2017/5/11 Landy
*/
#include <iostream>
using namespace std;
int main()
{
int a = 100, b = 200;
// 常量指针
const int *pConstPointer;
pConstPointer = &a;
cout << *pConstPointer << endl; // 读权限
// (*pConstPointer)++; // 写权限 错误:不能给常量赋值
pConstPointer = &b; // 修改指针指向的对象
/*总结:常量指针可以修改指向的对象,但只有读权限,而没有写权限*/
// 指针常量
int * const pPointerConst = &a; // 指针常量必须定义时初始化
cout << *pPointerConst << endl; // 读权限
(*pPointerConst)++; // 写权限
// pPointerConst = &b; // 指针常量不能修改指向的对象
/*总结:指针常量拥有读、写权限,但不可以修改指针指向的对象*/
// 指向常量的指针常量
const int * const pConstPointerConst = &a; // 定义指向常量的指针常量时必须初始化
cout << *pConstPointerConst << endl; // 读权限
// (*pConstPointerConst)--; // 写权限
// pConstPointerConst = &b; // 不能修改指向的对象
/*总结:指向常量的指针常量既不可以修改指向的对象,也没有对对象的写权限,只有读权限*/
getchar();
return 0;
}
/*
结论:
1、常量指针可以修改指向的对象,但对对象只有读权限,而没有写权限
2、指针常量拥有对对象的读、写权限,但不可以修改指针指向的对象
3、指向常量的指针常量既不可以修改指向的对象,也没有对对象的写权限,只有读权限
*/