Этот код работает:печати реверс строки, используя рекурсию
void reverse(char *str)
{
if(*str)
{
reverse(str+1);
printf("%c", *str);
}
}
Но, если я изменить назад (ул + 1) с реверсом (++ строка), не печатает первый символ.
В: Geeks
Out: Skee
Я не знаю, почему.
Hm, reverse (str ++) будет идти бесконечно или сделать seg. неисправность. Поскольку следующая функция получает только str, str, которая увеличивается, остается в предыдущем funcstion, и только эта функция может ее видеть. :) – Vladimir
хороший улов, так что вы пытаетесь достичь? вы хотите, чтобы другая функция получала str и добавляла к ней одновременно? В случае ++ str другая функция получает добавленное значение str, потому что у вас есть ++ до –
Фактически, я просто «экспериментировал» со строкой ++. Впервые я попытался решить, я сделал str + 1. str ++ смотрел на меня как на одно и то же, так что да, просто ради любопытства. Я пошарил экзамен первого уровня программирования на C, теперь я нахожусь на втором месте, просто хочу освоить c как можно скорее. :) – Vladimir