Well, first, this is a C string, not a C++ string. They were implemented as arrays of char for various efficiency reasons which certainly made sense in the 1970s (and probably still make sense today; ever notice how code gets bloated over time?) ...