Tho*_*hom 1 c arrays string indexing
以下内容摘自Mike Banahan的C书(链接:第2.8.1.5节)
据我所知,"a string"
缩减为指向该字符串的第一个字符的指针,该字符串存储在内存中的某处.但我一无所知"a string"[4]
,书中给出的内容对我来说有点不清楚.
当字符串有9个字符时,大小如何为4?除此之外,会"a string"[0]
引用第一个字符,"a string"[2]
第三个字符,依此类推?如果没有,请您简单解释一下这本书的语法意味着什么?
杀死我的行是"第一个导致 表达式,其类型为char,其值是 字母'r' 的内部表示".'r'在哪里进来?
这是从那本书中取出的文字:
字符串是作为数组实现的,尽管它可能看起来很奇怪,但完全允许对它们使用数组索引:
- "a string"[4]
- L"a string"[4]
Run Code Online (Sandbox Code Playgroud)
都是有效的表达.第一个结果是一个表达式,其类型为char,其值是字母'r'的内部表示(记住数组索引从零开始,而不是一个).第二个类型为wchar_t,并且还具有字母"r"的内部表示形式的值.
注意:请忽略广泛角色部分的内容,因为我觉得这不相关.谢谢.
您可以拼写"a string"[4]
如下:
char *s = "a string";
char ch = s[4];
Run Code Online (Sandbox Code Playgroud)
这会让事情更清楚吗?
s[0]: a
s[1]:
s[2]: s
s[3]: t
s[4]: r
s[5]: i
s[6]: n
s[7]: g
s[8]: \0
Run Code Online (Sandbox Code Playgroud)