Member 13057504 Ответов: 1

Почему выход программы равен 3323321? Что делает функция return в функции abc?


#include<stdio.h>
void abc(char*s)
{

if(s[0]=='\0')
    return;
abc(s+1);
abc(s+1);
printf("%c",s[0]);
}
int main()
{
    abc("123");
}


Что я уже пробовал:

я пробовал рекурсии для выполнения функции abc (char *s).

[no name]

Узнайте, как использовать отладчик для пошагового просмотра кода.

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
Почему выход программы равен 3323321? Что делает функция return в функции abc?

Это то, о чем вы просили.

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Maciej Los

Отладка программы-очень хороший совет. +5

Patrice T

Спасибо.