use*_*975 1 c operator-precedence
以下程序:
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;
}
Run Code Online (Sandbox Code Playgroud)
该计划的输出是:
HHE!
该hhe是不错,但"!" 在输出中让我困惑.声明ch=++i[s]对此负责.它应该被解释为:
ch =*(s + ++ i);
由于前缀增加导致i变为4并且使用它来获取'c'但是'!',我没有得到它并且在此操作之后加上我打印了'i'的值来检查它是4而不是3有什么问题,我不明白吗?