首页 > 代码库 > 常量指针与指针常量

常量指针与指针常量

/*
 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、指向常量的指针常量既不可以修改指向的对象,也没有对对象的写权限,只有读权限
*/

  

常量指针与指针常量