When ever you create an .exe program.
You are creating 3 segments or memory.
Your compiler reserved the memory for you.
1 is the code segment or code memory: is a memory that contain all the instructions that you wrote but in machine language
2 is the data segment or data memory: is a memory that contain all your data
but they are immortal you cannot destroyed them during your application
They are created at beginning of your application and destroyed when your done with your application
3 is the stack segment or stack memory: is a memory that contain all your data but they are mortal, they are destroyed at the end of a block
ex:
function(-50);
var function(var x)
{
abs(x);
}
the << (var x) >> : means that your are creating a variable x into the stack
YOU ASK THE COMPILER TO RESERVE MEMORY FOR THE VARIABLE x INTO A STACK SEGEMENT AND COPY THE VALUE -50 TO THE VARIABLE x
BETWEEN THE PARENTHESES { } YOU CAN YOU USE THE VARIABLE x BECAUSE THE LIFE TIME OF THE VARIABLE START BETWEEN { }. You call it IN SCOPE.
BUT AT THE END OF THE { } OR WHEN ITS OUT OF SCOPE THE VARIABLE x is destroyed by poping out the data out of the stack memory