有关const指针的一个有趣的问题 const指针不const?!

sean717 sean717 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚看书发现一个问题 于是写了下面代码

int main()
{
int a=1;
const int* p=&a;
cout<<(*p)<<endl;

a=2;
cout<<(*p)<<endl;
return 0;
}

输出结果是
1
2

依我以前的理解 const int* p 声明一个指针p 指向一个不能修改的常量 ,但是以上代码显示, const int* p 指向的内存区域 也是可以改变的!

当然, 如果在上述程序中对*p赋值 编译器马上就报错了


欢迎大家讨论,这种机制应算一个bug?
...全文

相关推荐

详细分析c++ const 指针与指向const的指针

主要介绍了c++ const 指针与指向const的指针的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

weixin_38537689

深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)

对于指针和常量,有以下三种形式都是正确的: 代码如下:const char * myPtr = &char_A;//指向常量的指针char * const myPtr = &char_A;//常量的指针const char * const myPtr = &char_A;//指向常量的常量指针下面依次对这三种类型进行介绍。因为*操作符是左操作符,左操作符的优先级是从右到左,对于1.常量指针(Constant Pointers) 代码如下:int * const p先看const再看* ,是p是一个常量类型的指针,不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。实例1: 代码

weixin_38684509

C语言中Const指针变量(常指针)

Const指针变量只保护其Value值不被改变,并不能保护指针所指向的地址中的值不被改变,下面一起来学习一下

weixin_38609720

函数指针和指针函数,const的用法,指针常量,常量指针的用法

函数指针和指针函数的区别,以及const的用法,指针常量,常量指针的用法

yanzi1225627

C++中const与指针、引用的分析

C++中函数的参数相比C语言中的函数参数要复杂的多,其中主要的原因是C++中引入了引用以及const限定符。这两个对象的引入,使得C++中的函数参数变得异常的复杂多变,每一种类型都具有比较适合的使用范围。 本文详细的分析const与指针、引用在一起存在情况下的情况分析。

weixin_38723683
评论 12
收藏 已收藏
分享
返回顶部
sean717
C++ 语言 65,214 成员 250,514 内容