常量区中数据为什么不能修改

  • Post author:
  • Post category:其他


常量区中的数据是怎么存储的

在这里插入图片描述

实现字符串的赋值。等价系统提供的字符串赋值。底层字符数组是引用关系。

在这里插入图片描述

既然我们能拿到地址,先改改看。(能拿到地址,总想干点啥坏事。。。)

在这里插入图片描述

崩了,字符串常量存储在常量区,常量区的内存是不让修改的。为啥常量区的内存不让修改呢? 这个是规定,记住就行了。

看看我们把str2也赋值成“hello world”

在这里插入图片描述

结果字符数组的地址还是一样的。相同的常量值在常量区只有一份,不同的变量都是在引用这份数据。所以它不能修改,如果通过内存操作把常量数据修改了,那其他的引用都被修改了。那问题就大了。



版权声明:本文为rbin_2009原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。