Следующая программа:Объяснение наличия символа на выходе
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!
hhe
все в порядке, но '!' на выходе меня смущает. За это отвечает заявление ch=++i[s]
. Он должен быть intepreted как:
ч = * (х + ++ I);
вызывая я быть 4 из-за приращения приставки и использовать его для извлечения «с», но «!», Я не получаю, что и плюс после этой операции я напечатал значение «я» проверить, и это было 4 не 3. В чем проблема, я не понимаю?
, почему вывод printf ("% c", str [3]), то есть значение, в котором хранится '', является печать '!' in output – user1369975
Поскольку '++' изменен 'i [s]' ('s [3]' или, может быть, 'str [3]' вы имели в виду). – johnchen902