The function newFunction(int *p) was called with
the address of a as before. But now newFunction(int
*p) calls
printf(" p=%d\n", p )
which prints the contents of p, which is a pointer. A pointer
is (on most systems) a 32-bit value, and printf()
will happily print it out. The particular value printed depends on the compiler
and the run-time environment, and can't be predicted.