#include <stdio.h>
int main() {
int c = c;
printf("c is %i\n", c);
return 0;
}
I'm defining an integer variable called c
, and I'm assigning its value to itself. But how can this even compile? c
hasn't been initialized, so how can its value be assigned to itself? When I run the program, I get c is 0
.
I am assuming that the compiler is generating assembly code that is assigning space for the the c
variable (when the compiler encounters the int c
statement). Then it takes whatever junk value is in that un-initialized space and assigns it back to c
. Is this what's happening?