Naming Rules & Coding

I am new at this and not well familiar with C.
I loaded TinyGPS++ successfully.
I loaded and ran the "Basic Example" sketch successfully.

In looking at the code, two questions arose:
(1) in the example below, is the asterisk a valid character in a variable name ("*gpsStream")? If not what does it mean?

const char gpsStream =
"$GPRMC,045103.000,A,3014.1984,N,09749.2872,W,0.67,161.46,030913,,,A
7C\r\n"
"$GPGGA,045104.000,3014.1985,N,09749.2873,W,1,09,1.2,211.6,M,-22.5,M,,000062\r\n"
"$GPRMC,045200.000,A,3014.3820,N,09748.9514,W,36.88,65.02,030913,,,A
77\r\n"
"$GPGGA,045201.000,3014.3864,N,09748.9411,W,1,10,1.2,200.8,M,-22.5,M,,00006C\r\n"
"$GPRMC,045251.000,A,3014.4275,N,09749.0626,W,0.51,217.94,030913,,,A
7D\r\n"
"$GPGGA,045252.000,3014.4273,N,09749.0628,W,1,09,1.3,206.9,M,-22.5,M,,0000*6F\r\n";

// The TinyGPS++ object
TinyGPSPlus gps;

void setup()
{
Serial.begin(115200);

In the example below, what does the "F" signify ( "println (F)") or why is it there?
Serial.println(F("BasicExample.ino"));
Serial.println(F("Basic

The asterisk signifies the variable is a pointer.
F() means leave the string in flash memory, saving RAM

It's often written

const char * gpsStream

The * is not part of the variable name.


Rob