绑定到字符串文字的索引运算符

Index operator bound to a string literal

所以我决定进行实验,完全出于随机性。 我发现了这个:

"Hello World"[1]

实际上是在处理第一个视图,结果是 'e' 即使:

这实际上是允许的,面对 "standards" 有保证的明确定义的行为吗?

"Hello World"[1]

完全有效。字符串文字是 N 个字符的数组类型。 "Hello World"的类型是12个char的数组(即char[12])。

这在语义上是正确的。 "Hello World"[1] 等同于 *("Hello World" + 1)。在此表达式中,字符串 "Hello World" 将被转换为指向其第一个元素的指针。因此,("Hello World" + 1)是字符串"Hello World".

的第二个元素的地址