常量指针与指针常量

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

  

时间: 2024-10-10 10:22:56

常量指针与指针常量的相关文章

详解 常量指针和指针常量

说一下 常量指针和指针常量 的区别. 常量指针 指向常量的指针,也就是说指针指向的对象是常量,指向的常量不能修改.指针不是一个常量, 可以把指针指向别一个常量. 常量指针是我们最常用的,一般声明形式如下: const int *p; int const *p; 例: int a(1), b(3); const int *p; // 或者是 int const *p; p = &a; std::cout << "address : " << p <&

常量指针和指向常量的指针

3种与const.指针及指针指向的对象有关的情形: 1.指向常量对象的指针 2.指向某个对象的常量指针 3.指向常量对象的常量指针 在第一种情况中,我们不能修改被指向的对象,但可以使指针指向其他对象: const char* pstring("Some text"); 在第二种情况中,我们不能修改指针中存储的地址,但可以修改指针指向的对象: char* const pstring("Some text"); 在最后一种情况中,指针和被指向的对象都被定义成常量,因此都

常量指针与指针常量的区别(转帖)

三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量). 指针指向的对象是常量,那么这个对象不能被更改. 在C/C++中,常量指针是这样声明的: 1)const int *p; 2)int const *p; 常量指针的使用要注意,指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改,也

常量指针和指针常量的区别

一, 常量指针,顾名思义,就是指向常量的指针,指针指向的内容不能改变,但是地址可以改变; 声明方式: const 类型 *指针常量名=&变量名: 如:const  int k=5,t=8; const int *p=&k; *p = 9; //指向的是常量,不可以赋值 p = &s;  //可以指向其他地址 二, 指针常量,即指针本身是个常量,是指针指向的位置不能改变,但是指向的对象本身是可以改变的. 声明方式: 指针类型 *const 指针名 = &变量名: 如:int

指针总结以及常量指针与指向常量的指针与指向常量的常指针

/*指针总结: 1:指针未被初始化一个地址或刚删除一个指针都要将其初始化为0,否则的话将会导致该指针失控 2:假如不想改变一个指针,那么将该指针定义为const, 假如不想改变该指针指向的值,将指针指向的值定义为const 假如即不想改变指针又不想改变指针指向的值,那么将指针和指针指向的值都定义为const 在new堆中创建一个对象,然后将内存地址赋给指针,之后我们就可以通过内存地址访问堆中的对象, 假如要删除该对象,我们只需要使用关键字delete,那么就会删除指针指向的对象并释放存储对象的内

常量指针和指针常量的区别详解

引用地址 http://blog.csdn.net/beyond0525/article/details/7409305 在C/C++中关键字const用来定义一个只读的变量或者对象,有如下优点    (1)便于类型检查,如函数的函数 fun(const int a) a的值不允许变,这样便于保护实参.    (2)功能类似与宏定义,方便参数的修改和调整.如 const int max = 100:    (3)节省空间,如果再定义a = max,b=max...就不用在为max分配空间了,而用

常量指针、指针常量、指向常量的指针常量

三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量). 指针指向的对象是常量,那么这个对象不能被更改. 在C/C++中,常量指针是这样声明的: 1)const int *p; 2)int const *p; 常量指针的使用要注意,指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改,也

常指针和指向常量的指针和指向常量的常指针

(1)指向常量的指针:是一个指向的内容是常量的指针变量,const int *p=&x;不可修改*p的内容,但可以让指针p指向另一个地址,和int const *p一样 (2)常指针:int *const p=&x指针本身是个常量,固定指向某一变量,因此p不可变,但是*p可变 (3)指向常量的常指针:const int *const p=&x,指针p永远指向x,并且不能通过它修改它指向的地址的内容

常量指针,指针常量,C++类型转换[转]

一.const应用 1.const关键字,他后面内容的不可修改,一般来说,其修饰的变量不可再进行赋值操作: 2.常量指针 int a = 3: int b = 4: const int* pt = &a: a = 5: *pt的值为5,pt只是一个指针,所以他指向的是a的内容,const限制的是*pt,所以,只是不能通过*pt修改其指向的内存内容. 3.指针常量:int* const a = pt;由于不可再进行赋值操作,所以指针常量在声明时必须赋值: 相关文章: 一.常指针与指针常量的区别?