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

3种与const、指针及指针指向的对象有关的情形:

1.指向常量对象的指针

2.指向某个对象的常量指针

3.指向常量对象的常量指针

在第一种情况中,我们不能修改被指向的对象,但可以使指针指向其他对象:

const char* pstring(“Some text”);

在第二种情况中,我们不能修改指针中存储的地址,但可以修改指针指向的对象:

char* const pstring(“Some text”);

在最后一种情况中,指针和被指向的对象都被定义成常量,因此都不能被修改:

const char* const pstring(“Some text”);

时间: 2024-12-15 01:34:31

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

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

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

指针常量;常量指针;指向常量的指针常量

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

【转】const int *p和int * const p的区别(常量指针与指向常量的指针)

[转]作者:xwdreamer   出处:http://www.cnblogs.com/xwdreamer 对于指针和常量,有以下三种形式都是正确的: const char * myPtr = &char_A;//指向常量的指针 char * const myPtr = &char_A;//常量的指针 const char * const myPtr = &char_A;//指向常量的常量指针 下面依次对这三种类型进行介绍. 因为*操作符是左操作符,左操作符的优先级是从右到左,对于

const指针,指向const的指针,指向const的const指针 -- C

int main() { //记忆方法:中间加个"是"字变得很好理解 /* 指针函数 */ void * f(); //按顺序写,先写指针(void *),再写函数(f()) //指针是函数 -- 这个指针是一个函数. /* 函数指针 */ void (* f)(); //函数是指针 -- 这个函数是一个指针. //暂时没想到怎么记忆. /* const 指针 */ const int * a; /* 指向 const 的指针 -- 指针 const*/ int * const b;

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

(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,并且不能通过它修改它指向的地址的内容

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

int *const p:指针常量,其本质是一个常量(用指针修饰),这个常量的内容是一个指针,不可以修改p指向的地址,但是可以修改*p的值.定义的时候要赋初值.(数组名也是一个指针常量) int const *p(const int *p):常量指针,其本质是一个指针(用const修饰).说明它指向的对象是一个常量,这个对象不能被更改,可以修改p指向的地址,但是不可以修改*p的值. const int *const p:指向常量的常量指针,既不可以修改p指向的地址,也不可以修改*p的值. . 总

速记const 指针与指向const的指针

指向const的指针,它的意思是指针指向的内容是不能被修改的.它有两种写法. ` const int* p; (推荐) int const* p;` 再说const指针,它的意思是指针本身的值是不能被修改的.它只有一种写法 int* const p=一个地址; (因为指针本身的值是不能被修改的所以它必须被初始化) 这两种情况很难分清,你只需注意在const后面的是*符号还是变量,*在后说明,const的是指针指向的对象,变量在后说明const的是指针本身 版权声明:本文为博主原创文章,未经博主允

指针的内容   指针的地址 指针所指向的内容 指针的类型 指针所指向的类型

这几个个东东很具有迷惑性. int a=10;      //假设a的地址是 0x0000004C int *p;           //假设p的地址是 0x0035FA94 p=&a; 指针的内容:指针里面存放的是地址. 指针p里面存放的是a的地址(&a).即指针p里面存放的内容是0x0000004C. 指针的地址:指针本身的地址. 指针p的地址就是&p.指针p的地址是0x0035FA94 指针所指向的内容:也就是指针里面存放的地址,那块地址里面存放的内容,通过对指针进行*引用

C语言数组指针(指向数组的指针)

注意:数组指针的定义,与指针数组的区别 转载:http://c.biancheng.net/cpp/biancheng/view/162.html 指向多维数组元素的指针变量 ① 指向数组元素的指针变量[例6.7]输出二维数组各元素的值.这里采用的方法是用基类型为整型的指针变量先后指向各元素,逐个输出它们的值. #include <iostream> using namespace std; int main( ) { int a[3][4]={1,3,5,7,9,11,13,15,17,19