C ++中字符串文字的类型是什么?

时间:2013-03-19 18:56:08

标签: c++ string types

例如,字符串文字“Hello”,const char[6]const char*的类型是什么?

2 个答案:

答案 0 :(得分:17)

字符串文字"Hello"的类型是“6 const char”的数组。

  

普通字符串文字和UTF-8字符串文字也称为窄字符串文字。窄字符串文字的类型为“ n const char”数组,其中 n 是字符串的大小[...]

但是,它可以通过数组到指针的转换转换为const char*。数组到指针的转换会产生指向数组第一个元素的指针。

答案 1 :(得分:4)

标准将其定义为“n const char数组”,因此它是const char[n](n是字符串的大小,包括终止的NUL字节)。

第7节,§2.14.15:

  

窄字符串文字的类型为“n const char数组”,其中n是下面定义的字符串大小,并且具有静态存储持续时间。