The ASCIZ directive on the PDP-11 assembler took a string literal and blitted it to memory with a trailing NULL, so there was a convenience factor there. BCPL and B used null-terminated strings, so it made sense for C to inherit the practice.<p>Pascal strings were significantly size-limited due to memory constraints (an implementation detail), so there <i>was</i> a reason to prefer null termination, but in essence we&#x27;re still slaves to an obsolete instruction set.