Die Art und Weise, wie Sie die Frage gestellt haben, legt nahe, dass Sie eine einzige Antwort erwarten. Das ist einfach nicht der Fall.
In einem groben Sinne werden alle Variablen im Speicher vorhanden sein, während Ihr Programm ausgeführt wird. Der Speicher, in dem Ihre Variablen existieren, hängt von mehreren Dingen ab.
Moderne Computer-Hardware hat oft eine ziemlich komplexe physische Speicherarchitektur - mit mehreren Ebenen von Cache (in der CPU und verschiedenen Peripheriegeräten), eine Reihe von CPU-Registern, Shared Memory, verschiedene Arten von RAM, Speichergeräte, EEPROMs usw. Verschiedene Systeme haben diese Arten von Speicher - und mehr Typen - in unterschiedlichen Proportionen.
Betriebssysteme können Ihrem Programm auf verschiedene Arten Speicher zur Verfügung stellen. Zum Beispiel kann es virtuellen Speicher bereitstellen, der eine Kombination aus RAM und reserviertem Festplattenspeicher verwendet (und Mappings verwaltet, so dass Ihr Programm den Unterschied nicht erkennen kann). Dadurch kann Ihr Programm mehr Arbeitsspeicher verwenden, als physisch als Arbeitsspeicher verfügbar ist. Dies wirkt sich jedoch auch auf die Leistung aus, da das Betriebssystem die Arbeitsspeichernutzung Ihres Programms zwischen Arbeitsspeicher und Festplatte austauschen muss (normalerweise um Größenordnungen langsamer).
Viele Compiler und Bibliotheken sind implementiert, um die Leistung Ihrer Programme zu maximieren (durch verschiedene Maßnahmen) - Compiler-Optimierung Ihres Codes (was dazu führen kann, dass einige Variablen in Ihrem Code gar nicht existieren) Eine Konsequenz daraus ist, dass der Compiler oder die Bibliothek Speicher auf unterschiedliche Weise verwenden kann (z. B. können einige Implementierungen Code in Ihre ausführbare Datei einbetten, um bei der Ausführung des Programms verfügbare Speicherressourcen zu erkennen) festgelegter RAM-Umfang), und die Nutzung kann sich im Laufe der Zeit sogar ändern.
Es hängt von der Speicherklasse der Variablen ab. –
Es hängt auch davon ab, wo Sie die Variablen definieren. Und möglicherweise auf, wenn sie bei der Definition initialisiert werden oder nicht. –
lesen Sie über Heap & Stack hier: http://StackOverflow.com/Questions/79923/what-and-where-are-the-stack-and-heap – CIsForCookies