玩命加载中 . . .

关于 const char* 和 const int 的一个小问题


最近发现使用const int 定义变量时若不设初始值,编译器会报错。然而使用const char* 时却不会,并且使用const char* 明明是const常量,却仍然可以修改其值。

int main()
{
  const int b;    //报错
    const char* a;
    a = "hjd";
    a = "sdf";      //不会报错
}

发现原来是概念有些混淆,const char* 是常量指针,可以修改地址,不可修改指针指向的值,所以并未违背常量不可修改值的规定。这里由“hjd”变为“sdf”实际上是修改了指针a指向的地址。


文章作者: hjd
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hjd !
评论
  目录