我有一小段代码做了一些有趣的事情,但我不知道它是如何做到的。
int main(int argc, const char * argv[])
{
char text[] = "object";
for(char *ptr = &text[0]; *ptr != '\0'; ptr+=2)
{
cout << ptr << endl;
ptr--;
}
return 0;
}
发生的事情是它每次都从 [1]、[2]、[3] 等到字符串的末尾,打印出内容。我无法理解它是如何做到的,因为指针永远不会被取消引用,但正确的字母似乎会被打印出来。我会假设不是字符串的字母,而是指针值将打印为奇怪的字符,但事实并非如此。