C str表示 - const char * vs const unsigned char *

时间:2017-01-24 11:06:15

标签: c++ c string

我在Taking an index out of const char* argument上问了另外一个问题,但辩论只涉及第一个问题,所以我把它分成了另一个问题。

问题:

有没有理由有人想要将C字符串表示为 const char * 而不是 const unsigned char *

  • 一方面,我将常见的C str表示视为 const char * 一直都是。
  • 另一方面,有时使用 const char * 强制转换为无符号,如上面链接的示例。

谢谢,

1 个答案:

答案 0 :(得分:4)

是的,当然一般的只读字符串应该是const char *,因为char(具有未指定的实现指定的签名)是字符的默认类型。

换句话说,像"foo"这样的文字由char而不是unsigned char元素组成。

当然,如果您愿意,可以将字符解释为无符号,但是您可能需要演员。