const常量不能被修改,为啥编译还能通过?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const常量不能被修改,为啥编译还能通过?相关的知识,希望对你有一定的参考价值。

将33赋值给*d_p不是赋值给d吗?如果不是,那是赋值给谁了?

参考技术A C语言中,使用const修饰一个变量,主要目的是为了保证这个变量不能被显式地修改,即不能直接通过对这个变量赋值来改变它的值,但如果像这段代码里通过指针迂回地修改这个变量存放的内存空间,那C语言是没办法在编译阶段就检测到的。 参考技术B 1,2同效,指的是(*p)不能被修改,即*p='c';报错。3指的是p不能修改,若p="str";则p=null;报错。其实const修饰的变量意思就是它后面的东西不能重复赋值const
char
*p;(*p)就定了

以上是关于const常量不能被修改,为啥编译还能通过?的主要内容,如果未能解决你的问题,请参考以下文章

C++中强行修改const常量的问题

const常量类型

php中的const和static

C++随笔:常量指针和指针常量

const修饰的常量也是可以被修改的!真的是世界上唯一不变的是变化

常量