常指针的值不能改变,但是其指向的内容可以改变,这么理解?请举例说明下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常指针的值不能改变,但是其指向的内容可以改变,这么理解?请举例说明下相关的知识,希望对你有一定的参考价值。
你的理解是对的,常指针始终指向同一块内存地址.因此不能修改它来指向另一个变量.但可以通过该指针来修改它所指向的数据.该类型指针不允许指向一个const数据.还有在声明时一定要初始化它.比如下面的代码:int a = 3;
const int b = 4;
int *const ptr1 = &a;
int *cosnt ptr2 = &b; // error! 参考技术A int x = 5; // x的值是5
int* const p = &x;// , p的值是x的地址,比如0x00ff00ff
这个指向的地址不可改变,但是可以改变这个地址的值,也就是x 的值
*p = 10;//x的值是10,p的值是x的地址,还是0x00ff00ff 参考技术B 常指针就相当于一个固定的抽屉,你可以在抽屉内放不同的东西,但抽屉不能移动
12.3 C++常指针
C++指向对象的常指针
C++定义指向对象的常指针的一般形式为
类名 * const指针变量名;
也可以在定义指针变量时使之初始化
在C++中,虽然指向对象的常指针变量的值不能改变,但可以改变其所指向对象的值,如果想将一个指针变量固定地与一个对象相联系,可以将它指定为const指针变量。
C++指向常对象的指针变量
定义指向常变量的指针变量的一般形式为
const 类型名*指针变量名;
例子:定义指向常变量的指针变量point
const char *point;
const的位置在最左侧,它与类型名char紧连,表示指针变量point指向的char变量是常变量,不能通过point来改变其值。
C++使用常变量注意事项
如果一个变量已被声明为常变量,只能用指向常变量的指针变量指向它,而不能用一般的指针变量去指向它。
指向常变量的指针变量除了可以指向常变量外,还可以指向未被声明为const变量。
如果函数的形参是指向非const变量的指针, 实参只能用指向非const变量的指针,而不能用指向const变量的指针。
如果函数的形参是指向cons型变量的指针,在执行函数过程中不能改变指针变量所指向的变量的值,因此允许实参是指向const变量的指针。
C++使用常对象注意事项
如果一个对象已被声明为常对象,只能用指向常对象的指针变量指向它,而不能用一般的指针变量去指向它。
如果定义了一个指向常对象的指针变量,并使它指向一个非const的对象,则其指向的对象是不能通过指针来改变的。
指向常对象的指针最常用于函数的形参,目的是在保护形参指针所指向的对象,使它在函数执行过程中不被修改。
如果定义了一个指向常对象的指针变量,不能通过它改变所指向的对象的值,但是指针变量 本身的值是可以改变的。
以上,如果你看了觉得对你有所帮助,就给小林点个赞叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~
100道C语言源码案例请去公众号:C语言入门到精通
以上是关于常指针的值不能改变,但是其指向的内容可以改变,这么理解?请举例说明下的主要内容,如果未能解决你的问题,请参考以下文章