В C++, где хранятся статические, динамические и локальные переменные? Как насчет в C и Java?В C++, где хранятся статические, динамические и локальные переменные? Как насчет в C и Java?
ответ
Если вы компиляции C/C++ для создания окна исполняемым (или, может быть, для любой системы x86), то статические и глобальные переменные, как правило, хранятся в сегменте памяти называется данных сегмент. Эта память обычно также разделяется на переменные, которые инициализируются, и те, которые не были инициализированы программой в их определении.
Локальные переменные, которые определены внутри функций, выделяются в запущенном стеке программы вместе с адресом возврата функции.
Под «динамическим» Я предполагаю, что вы имеете в виду вещи, выделенные с использованием new
или malloc
. Они обычно хранятся в еще одной области памяти, называемой «кучей» (которая не имеет ничего общего с структурой данных «кучи»).
Все эти детали зависят от платформы и обычно, как программист, вам не понадобится даже осознавать их.
+1 (за исключением программиста, о котором вы должны знать) – codenheim
объясните пожалуйста. – shoosh
Конечно. Скорее всего, любой программист C/C++, заслуживающий внимания, знает, где хранятся их переменные. Он поставляется с территорией. Для управляемых языков можно утверждать иначе, но не для C/C++. – codenheim
Начало здесь: http://en.wikipedia.org/wiki/Data_segment
C, C++
- Static: сегмент данных из модуля/DLL/разделяемой библиотеки код компилируется в.
- Динамический: на любой куче памяти, такой как куча времени выполнения, куча Win32, пользовательские кучи. Какая куча данных заканчивается, зависит от того, как вы распределяете память (и для C++, если оператор new/delete переопределен для использования определенного распределителя).
- Локальный: на фрейме стека для текущей функции/метода.
Java
- Статическая: На JVM кучи.
- Динамический: на куче JVM.
- Локальный: на фрейме стека для текущей функции/метода.
- 1. В Java, где хранятся примитивные статические переменные и статические функции?
- 2. где в памяти хранятся статические переменные?
- 3. Где хранятся статические переменные в java?
- 4. Где хранятся статические переменные?
- 5. C локальные и глобальные статические переменные
- 6. Статические переменные C++ динамические
- 7. Где хранятся локальные переменные FORTRAN?
- 8. Статические переменные в C++ и Java
- 9. Где статические локальные переменные go
- 10. Где хранятся переменные в Python?
- 11. Где хранятся переменные в C++?
- 12. Где хранятся локальные переменные .NET?
- 13. как статические и динамические переменные, скомпилированные в C
- 14. где и когда хранятся и инициализируются глобальные статические и локальные статические?
- 15. Как хранятся статические переменные java в JVM
- 16. Статические переменные в C и C++
- 17. Где хранятся локальные переменные приложения Android?
- 18. блокировать локальные переменные в C++
- 19. Где хранятся переменные, хранящиеся в C++?
- 20. Где именно хранятся переменные в программе C?
- 21. Статические переменные и потоки (C)
- 22. Общие и локальные переменные C++
- 23. Статические и динамические памяти в C Адреса
- 24. C# Локальные переменные и многопоточной
- 25. C# Webservice и статические переменные
- 26. Локальные переменные в C#
- 27. локальные переменные в C
- 28. Статические локальные переменные в Perl
- 29. Где хранятся локальные методы?
- 30. статические и внешние глобальные переменные в C и C++
А как насчет LISP, FORTRAN и Haskell? Ох, а как насчет PHP и Perl? – 2010-03-17 20:14:52
Вы забыли мозговой шок и пробелы ... – Macmade
'static' означает похожие, но тонко разные вещи на этих языках. 'local 'и' dynamic' не являются ортогональными понятиями. Поэтому трудно точно ответить на этот вопрос, не зная, сколько вы уже знаете о предмете. Возможно, если вы более четко объясните, что вы хотите знать, вы можете получить лучший ответ. –