Given a program of :
int main() { short myVariableName1; // stores from -32768 to +32767 short int myVariableName2; // stores from -32768 to +32767 signed short myVariableName3; // stores from -32768 to +32767 signed short int myVariableName4; // stores from -32768 to +32767 unsigned short myVariableName5; // stores from 0 to +65535 unsigned short int myVariableName6; // stores from 0 to +65535 int myVariableName7; // stores from -32768 to +32767 signed int myVariableName8; // stores from -32768 to +32767 unsigned int myVariableName9; // stores from 0 to +65535 long myVariableName10; // stores from -2147483648 to +2147483647 long int myVariableName11; // stores from -2147483648 to +2147483647 signed long myVariableName12; // stores from -2147483648 to +2147483647 signed long int myVariableName13; // stores from -2147483648 to +2147483647 unsigned long myVariableName14; // stores from 0 to +4294967295 unsigned long int myVariableName15; // stores from 0 to +4294967295 cout << "Hello World!" << endl; cout << myVariableName1 << endl; cout << myVariableName2 << endl; cout << myVariableName3 << endl; cout << myVariableName4 << endl; cout << myVariableName5 << endl; cout << myVariableName6 << endl; cout << myVariableName7 << endl; cout << myVariableName8 << endl; cout << myVariableName9 << endl; cout << myVariableName10 << endl; cout << myVariableName11 << endl; cout << myVariableName12 << endl; cout << myVariableName13 << endl; cout << myVariableName14 << endl; cout << myVariableName15 << endl; cin.get(); return 0; } Printing out the unassigned variables will print whatever was stored in that memory location previously. What I've noticed is that across multiple consecutive executions the printed values are not changing - which tells me that the locations in memory are the same each time they execute.
I'm just curious as to how this is determined, why this is so.