以下程序:
int main( )
{
static char s[25]="The cocaine man";
int i=0;
char ch;
ch=s[++i];
printf("%c",ch);
ch=s[i++];
printf("%c",ch);
ch=i++[s];
printf("%c",ch);
ch=++i[s];
printf("%c",ch);
return 0;
}
程序的输出是:
呵呵!
hhe
没关系,但是“!” 输出中的内容让我感到困惑。声明ch=++i[s]
对此负责。它应该被解释为:
ch=*(s+++i);
由于前缀增量导致 i 为 4,并使用它来获取“c”但“!”,我没有得到它,并且在此操作之后加上,我打印了“i”的值来检查,它是 4 而不是 3 . 什么问题,我不明白?