Does a char array initialized like so:
char foo[] = {0x31, 0x32, 0x33}; //123
get a null terminator added to the end of it so the memory data at foo would look something like 0x31323300? Or does this simply write 0x313233 to memory?
Also, is foo treated like a string literal by the compiler regardless of this method of initialization?