Study C with gdb
Note1: int declaration
int a; // No memory is allocated.
int b = 2;
a = 1 + b; // From gdb, we can see the memory is allocated staring from this line.

int a = 1; // Memory has been allocated due to initialization by putting '1' into some given memory.
int b = 2;
a = a + b;

Note2: string declaration
There are several additional instructions to execute if the strings are initialized through declaring an array.





A few notes from Internet -
Stack Overflow note about OOC