Richard is right about the pointer type. A pointer is only a value to memory and so has no additonal intelligence to which it points. The rule is, that the pointer has the same type as the memory to which it points. Than a future reader
and the current compiler are understanding the code. ;-)
I would use clearer names to improve the code.
char firstText[18];
char secondText[18];
char *firstPointer;
char *secondPointer;