a char *, because that's what was really intended, and because if the print function modifies the string, various things could become unhappy (so the string should _not_ be modified).
Parts of this written by Chris Torek at the beginning of time.