I can explain you lot of this behavoir, but not in english... if you want I can do it in spanish...
for example, is stupid said, that C reuse a var between several functions, only is the space for non-static vars...
this give you 42, too.
#include <stdio.h>
void foo(void)
{
int a;
printf("%d\n", a);
}
void bar(void)
{
int b = 42;
}
int main(void)
{
bar();
foo();
}
the first example, is curious, but is logic... depend on stack state machine based implementation or direct interpreter...
well, who did this document?