You took the variable n, declared statically inside name(), which pointed to a C-string " Justin ", then made it point to a C-string " Alex ".
So, naturally, when you inspect it later, it still points to a C-string " Alex ".
Remember, you declared it statically. That means every invocation of name() shares the same variable.
If function-static variables were to re-take their initialiser’s value every time you entered the function, there would be absolutely no point in making them static!
4
solved Why does the second call to name() print “Alex . n”?