最近我在考试中发现了一个有趣的问题:下面的代码将打印什么. 我想知道为什么这段代码没有按顺序打印字符数组的每个字符(即"dcba"),而是每个部分(即" dcdbcabcd"),以相反的顺序。
顺便说一下,我还想知道哪个主题与这个问题有关。
谢谢!
#include <iostream>
#include <string.h>
int main()
{
char mess[] = "abcd";
char* ptr;
ptr = mess + strlen(mess);
while (ptr > mess)
printf("%s", --ptr);
return 0;
}
char mess[] = "abcd";
表示mess
,即&mess[0]
为字符串{'a', 'b', 'c', 'd', }
的地址。ptr = mess + strlen(mess);
表示ptr
最初指向mess
的