以下摘自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]
都是有效的表达式。第一个结果产生一个表达式,其类型为char,其值为字母'r'的内部表示(记住数组索引从零开始,而不是一个)。第二个具有wchar_t类型,并且还具有字母“ r”的内部表示的值。
注意:请忽略宽字符部分的内容,因为我认为这无关紧要。谢谢你。
您可以"a string"[4]
说明如下:
char *s = "a string";
char ch = s[4];
它使事情更清楚了吗?
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句