【问题标题】:What are the properties of const char*? [duplicate]const char* 的属性是什么? [复制]
【发布时间】:2020-09-09 12:10:11
【问题描述】:

我真的很困惑 const char 中的 const 到底是什么,因为我可以更改值。指针是常量还是这是什么?和 const char 或 char* 或 char const 有什么区别???

【问题讨论】:

标签: c++ string pointers char constants


【解决方案1】:
char * p = ...

是一个指向字符的指针。您可以更改指针,以及指针指向的值。

char const * p = ...
const char * p = ...

是等价的,并且是指向char const 的指针。指针可以指向任何地方,但它必须始终指向char const

char const * const p = ...
const char * const p = ...

是等价的,并声明一个指向char constconst 指针。您无法更改指针指向的内容或指针指向的值。

char * const p = ...

是一个 const 指向一个字符的指针。您可以更改指向的值,但不能将指针更改为指向其他位置。

【讨论】:

    【解决方案2】:

    不,您不能更改值。

    const char* ptr = "thing";
    ptr[2] = 'o';  // error
    

    这是一个指向const chars 的指针。

    但是,您可以使指针指向其他内容,因为它不是const char* const。 :)

    Const 适用于左边,除非那里什么都没有,在这种情况下它适用于右边。

    【讨论】:

    • 感谢您的帮助,它让事情变得清晰
    【解决方案3】:

    我真的很困惑 const char 中的 const 到底是什么

    char 是常量。 IE。指向的类型是const char

    因为我可以改变值。

    确实,指针不是const,因此可以通过改变它的值来指向别处。

    指针是常量

    没有。它是一个指向 const 的非常量指针。

    和const char有什么区别

    它是一个不可变的字符。

    或字符*

    它是一个指向字符的指针。

    还是 char const???

    const char

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 2015-02-01
      • 2012-12-26
      • 1970-01-01
      • 2012-07-21
      • 2013-03-07
      • 2011-10-24
      • 1970-01-01
      • 2011-01-18
      相关资源
      最近更新 更多