Why using a pointer interfacing LCD HD44780
C language does not have a native string format, so instead, strings are implemented as character arrays. The string_to_lcd function receives a pointer to the memory location where the first character of the string is.

By conventions in C strings are terminated with a null character (0x00).

Edit

The while statement first checks if it reached the end of the string (current character is different from null), if it is, the character is printed and the pointer is incremented in order to point to the next character. The cycle stops when the null character is reached.