Sei nuovo alla programmazione in generale o solo al C++? Se sei nuovo alla programmazione, probabilmente vorrai prendere lezioni. Se sei appena arrivato al C++, puoi provare a leggere Practical C++ Programming on-line C++ Primer.
quanto riguarda la tua domanda specifica: nella dichiarazione delle variabili, un asterisco significa "questo è un puntatore":
int * pointer;
Questo riguarda anche le dichiarazioni di funzione/prototipi, in cui sono dichiarate le variabili, come nel tuo esempio.
Dopo la dichiarazione, asterisco significa che stai de-referenziare il puntatore. Cioè, stai ottenendo il valore nel punto in cui sta puntando.
printf("memory address:%d value:%d", pointer, *pointer);
Si noterà che l'indirizzo di memoria cambierà in modo imprevisto, a seconda dello stato del programma quando viene stampato. In un programma semplice, non vedrai il cambiamento, ma in un programma complesso, lo faresti.
Inoltre, è possibile considerarlo come un modo per chiarire i nomi delle funzioni. Ad esempio, supponiamo di avere due classi (esempio banale); uno implementa le frazioni (Frazione) e l'altro implementa gli interi (Intero). Entrambe le classi possono avere una funzione chiamata "aggiungi". Includendo il nome della classe Fraction, il compilatore saprà che stai implementando la funzione add per la classe Fraction, piuttosto che la classe Integer. –
Ben detto, Ryan –