Пожалуйста подскажите, как правильно (а вернее где) объявлять переменные. Не совсем понимаю логику объявления переменных внутри функции. т.е. я заметил (как всегда методом тыка) если я объявляю переменную win внутри функции, то он ее не воспринимает.
Итого изолирую вопросы:
1. Стоит ли все переменные вообще объявлять в самом начале программы? (меньше ли так будет проблем с обращения к ним)
2. Если я 2 раза объявляю одну и туже переменную в коде - ругается. Справедливо.
Если же я объявляю первый раз в самом начале кода второй раз в функции то - молчит. не понимаю этого момента. Почему так?
1. KeSeG - 18 Сентября, 2018 - 05:27:59 - перейти к сообщению
2. Kibor - 18 Сентября, 2018 - 05:38:13 - перейти к сообщению
Переменные есть локальные и глобальные.
Глобальные те что объявлены вне функций.
Их видно везде.
Локальные те что объявлены в функциях.
Их видно только в этой функции.
Исходя из этого, имена переменных следуют этому правилу.
Если есть одноименная переменная локальная в функции с глобальной, то при использование ее в функции учитывается именно локальная. Вне функции глобальная.
Глобальные те что объявлены вне функций.
Их видно везде.
Локальные те что объявлены в функциях.
Их видно только в этой функции.
Исходя из этого, имена переменных следуют этому правилу.
CODE:
int a=5;
messagebox (fff());
messagebox (a);
function fff()
{
int a=2;
messagebox (a);
return a;
}
messagebox (fff());
messagebox (a);
function fff()
{
int a=2;
messagebox (a);
return a;
}
Если есть одноименная переменная локальная в функции с глобальной, то при использование ее в функции учитывается именно локальная. Вне функции глобальная.
3. KeSeG - 18 Сентября, 2018 - 05:52:41 - перейти к сообщению
С одноименными стало ясно. А если мы объявляем переменную в функции, далее ее значение мы можем использовать глобально?
4. Zireael - 18 Сентября, 2018 - 06:03:16 - перейти к сообщению
Цитата:
А если мы объявляем переменную в функции, далее ее значение мы можем использовать глобально?
Нет. Но можно вернуть её значение из функции.
CODE:
int x=f(); // присваиваем результат, который вернёт функция
messagebox(x);
function f()
{
int y=15;
return y; // возвращает значение переменной 'y'
}
messagebox(x);
function f()
{
int y=15;
return y; // возвращает значение переменной 'y'
}
5. KeSeG - 18 Сентября, 2018 - 06:23:47 - перейти к сообщению
Еще раз спасибо, хоть какая то ясность появилась.