Might be dependent on the compiler and it's optimizations. Also, poorly optimized code would ruin the day - about 20 time slower in some case. Carefully consider reading the assembly code (provided it compiles ).
"array" being a char array name, it holds the starting address of the array in the memory. If you try to assign a new address to this pointer during run time (try to destroy the array's existance), there will be compiler error. L-value required will be shown by the compiler