То, как вы задали вопрос, предполагает, что вы ожидаете одного ответа. Это просто не так.
В грубом смысле все переменные будут существовать в памяти во время выполнения вашей программы. Память, в которой существуют ваши переменные, зависит как от нескольких вещей.
Современное компьютерное оборудование часто имеет довольно сложную архитектуру физической памяти - с несколькими уровнями кеша (как в ЦП, так и в различных периферийных устройствах), несколько регистров процессора, общую память, различные типы ОЗУ, запоминающие устройства, EEPROM и т. Д. В разных системах эти типы памяти - и больше типов - в разных пропорциях.
Операционные системы могут сделать память доступной для вашей программы по-разному. Например, он может предоставлять виртуальную память, используя комбинацию ОЗУ и зарезервированного пространства на жестком диске (и управляющих сопоставлений, поэтому ваша программа не может отличить эту информацию). Это может позволить вашей программе использовать больше памяти, чем физически доступно в качестве ОЗУ, но также влияет на производительность, поскольку операционная система должна обменивать память вашей программы между ОЗУ и жестким диском (что обычно на порядок медленнее).
Множество компиляторов и библиотек реализовано для максимизации производительности ваших программ (различными способами) - оптимизация вашего кода (что может привести к тому, что некоторые переменные в вашем коде не существуют даже при запуске вашей программы), библиотечные функции созданный для производительности и т. д. Одним из следствий этого является то, что компилятор или библиотека могут использовать память по-разному (например, некоторые реализации могут вставлять код в ваш исполняемый файл для обнаружения ресурсов памяти, доступных при запуске программы, другие могут просто предположить фиксированный объем ОЗУ), и использование может даже меняться со временем.
Это зависит от класса хранения переменной. –
Это также зависит от того, где вы определяете переменные. И возможно, если они инициализированы в определении или нет. –
читайте о куче и стеке здесь: http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap – CIsForCookies