常量指针和指针常量

常量指针,重心点在后面,它是一个指针,它指向一个常量。它指向的地址的内容不能被修改,是防止对指针误操作而出现修改常量这样的错误。

指针常量,重心点在后面,它首先得是一个常量,然后它是一个指针。系统不能修改指针常量所指向的地址,也就是说这个指针指向的地址一经初始化,就固定了。但是,它所指向的地址中的内容,是可以改变的。

(1)char* const p1;

(2)char const* p2;

(3)const char* p3;

(4)const char* const p4;

对以上四个声明进行分析:其实,只需要看const距离哪个近,靠近哪个就是修饰哪个。

(1)中,const是用于修饰p1指针本身的,即指针本身是个常量,但是p1所指向的内容可以被修改;

(2)中,const是用于修饰指针所指向的变量的,即指针p2所指向的内容必须为常量,不可被修改;

(3)中,与(2)相同;

(4)中,前一个const修饰指针所指向的内容,后一个const修饰指针本身,即指针p4本身就是个常量,并且它所指向的内容也必须是常量,不可被修改。

因此,p1是指针常量;

p2,p3是常量指针;

p4二者皆占。

时间: 2024-10-10 20:23:11

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

详解 常量指针和指针常量

说一下 常量指针和指针常量 的区别. 常量指针 指向常量的指针,也就是说指针指向的对象是常量,指向的常量不能修改.指针不是一个常量, 可以把指针指向别一个常量. 常量指针是我们最常用的,一般声明形式如下: 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

常量指针与指针常量

/* 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; // 读

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

/*指针总结: 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;由于不可再进行赋值操作,所以指针常量在声明时必须赋值: 相关文章: 一.常指针与指针常量的区别?