Локальная переменная и глобальная переменная с тем же именем [дубликаты]

0

У меня есть две переменные, одна из которых является локальной в функции и другой глобальной. Эти две переменные имеют одно и то же имя. Во время компиляции у меня нет ошибок. Итак, когда код работает, и я использую эту переменную, какой из них выбран?

Спасибо.

  • 4
    во время компиляции на каком языке ??? (C, C ++ или Java)
  • 2
    Почему бы тебе просто не попробовать и не узнать?
Показать ещё 1 комментарий
Теги:

2 ответа

3
Лучший ответ

Локальная переменная всегда будет скрывать (теневую) "глобальную".

В Java вы можете получить доступ к переменной экземпляра, используя ключевое слово this. Это часто используется в конструкторах. Например:

private String someVar;

public ClassName(String someVar) {
    this.someVar = someVar; // this.someVar is the instance variable
                            // someVar is the local variable
} 
  • 1
    Но OP спрашивает о глобальных переменных, поэтому примеры (по крайней мере, C ++) кажутся неактуальными.
  • 0
    Что означает «скрыть (тень)»? Будет ли доступна локальная переменная или глобальная. В C / C ++ будет доступна локальная переменная. В C ++ вы можете использовать оператор разрешения области (: :) для доступа к глобальной переменной.
1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню