Likewise, returning a const char * prevents the return value from being assigned to a char * (assuming no casting, and if you're just going to cast then why add const? :))