2010-02-18 4 views
0

В рекурсивной функции переменная должна быть объявлена ​​как локальная или статическая или глобальная переменная?Локальная переменная или статическая переменная или глобальная переменная

Заранее спасибо ...

+0

Можете ли вы уточнить? Какая переменная? Как выглядит код? Я собираюсь угадать не глобальный. – 99miles

+0

Разве это не вопрос домашней работы? – sbi

+4

OP задал 7 вопросов до сих пор, и все принятые ответы были получены от Abhineet Agarwal. Интересно :) – gameover

ответ

7

зависит от цели. Статическая переменная означает, что у вас есть одна переменная, которая используется во всех рекурсивных вызовах. Нормальная локальная переменная означает, что каждый рекурсивный вызов получает свою собственную копию этой переменной. Вам нужно выбрать тот, который имеет смысл для того, что вы делаете.

Глобальное значение похоже на статическую локальную переменную (одна переменная, разделяемая всеми вызовами), но она также видна остальной части приложения.

+3

Я бы добавил, что использование глобальных переменных - плохой стиль программирования. Независимо от того, где и как они используются. Статические переменные также могут вызывать ошибки, которые сложно понять. – Lauri

+1

... * в частности * в рекурсивных функциях. –

2

Local только.

Метод рекурсии может быть определен таким образом, чтобы передавать его переменные с каждым вызовом. И конечное значение возврата вычисляется с использованием предыдущих возвратных варов возврата. такие как возврат rec(i-1)+rec(i-2)

Если вы используете глобальные переменные, если вы выполняете параллельные две или более рекурсии, переменные могут быть испорчены.

Советую вам написать рекурсию для использования локальных переменных и только в параметрах.

+0

Lol, похоже, что вы блуждали в водоворот путаницы ... – Potatoswatter

0

Используя локальную переменную, вам нужно будет передать это и вернуться с каждым рекурсивным вызовом.

Статические и глобальные переменные могут быть достигнуты из любого уровня рекурсии.

0

U может использовать любой из упомянутых, но все зависит от того, что вы предполагали с рекурсией!

0

Это зависит от того, что вы хотите сделать. Обычно я избегал статичности.

Смежные вопросы