因为在C"字符串"只是字符数组,你也可以在那里做同样的事情:
char* foo = "Hello World";
printf("%c", foo[4]); // prints o
Run Code Online (Sandbox Code Playgroud)
更重要的是,"字符串"只是指向以零字符('\ 0')结尾的字符数组的第一个元素的指针.字符串函数只是迭代,直到找到空字符(这就是为什么它们不存在时才有乐趣)并且索引到数组只是编写一些指针算法的一种奇特方式:
foo[4]
Run Code Online (Sandbox Code Playgroud)
变成
*(foo + 4)
Run Code Online (Sandbox Code Playgroud)