文字列うんぬん以前に、まずポインタを理解すべきだな。
"char*"を文字列型(JavaのString)みたいに考えてるようだが、それは正確ではない。
char(8bit整数)型のポインタが"char*"なだけで、Cではたまたまそこに文字列を入れる
慣例になってる(コンパイラもそう判断している)ってだけ。
それ以外の扱いはint*やdouble*と変わらん。