Auto variables are stored on the stack alongside all other local variables.
In procedural programming languages like C auto variables have a lifetime bound to their scope inside a function, and is often synonymous with local variable. They're commonly allocated in the current stack frame along with a function's arguments and a possible return value.
Dynamic variables are stored in a memory heap allocated to them at run time.
* These are all implementation defined. Access to `register' specified indentifiers should be as fast as possible, so the compiler may place the value in a machine register. However, the compiler is free to treat a `register' declaration as an `auto' declaration. * Where free memory is maintained is an OS specific concept. Instructions are generally stored in code segement. Local Variables are stored in Stack. Register variables are stored in Register. Global & static variables are stored in data segment. The memory created dynamically are stored in Heap And the C program instructions get stored in code segment.
They is not.
Stack.
Stack.
It depends entirely on what platform you are using. In an embedded environment, for instance global/static variables go into different RAM memory segments depending on whether or not they are initialised. constants are often left in ROM automatic variables are normally placed of the stack of the currently running task but not always.
initialize static variables are stored in data segment where uninitialized static variables are stored in BSS(block storing for Symbol) it also a part of data segment exp static int i=10;//stored in data segment static int i;//stored in BSS (uninitialized data segment) Thanks NAvin
On the stack.
Either in registers or on the stack.
Main memory (RAM).
A static variable is one which is not stored on the stack but in the memory of the program. Static variables can be changed.