Вывод программы будет
ask
После этого объявления
char y[10] = "tasked";
массив y инициализируется следующим образом
char y[10] = { 't', 'a', 's', 'k', 'e', 'd', '\0', '\0', '\0', '\0' };
То естьвсе символы, которые не имеют соответствующего инициализирующего символа из строкового литерала, инициализируются нулями.
После этого оператора
n = strlen (x);
n равно 6.
ИтакЭто утверждение
*(x+4) = x[n];
делает следующее. Он заменяет символ 'e' (с индексом 4) на символ '\ 0' (с индексом 6);
Так что после этого массив имеет следующее содержимое
{ 't', 'a', 's', 'k', '\0', 'd', '\0', '\0', '\0', '\0' }
Тогдауказатель перемещается на одну позицию и указывает на второй символ массива (с индексом 1), то есть на символ «а».
Таким образом, начиная с этого символа «а», пока не встретится завершающий ноль символов'a', 's' и 'k' выводятся.