In de juiste code werkt ge met pointers.
Dus als je een variabele ziet staan die zo een sterretje langs zijn naam heeft:
Dan heb je geen integer maar een pointer naar een integer (of array van integers).
Wat is een pointer precies is? In principe een "verwijzing" naar een ander stukje geheugen. Het houdt in principe een geheugenplaats bij.
Is dat dan nuttig? Hangt van de situatie af. Ze zijn vooral handig als je ze wilt meegeven als functieparameters. Als je bijvoorbeeld een array wilt meegeven aan een functie, dan wil je eigenlijk dat zo efficient mogelijk doen.
Door enkel een paar bytes mee te geven aan de functie ( een pointer dus), kan je dat bereiken. De functie kan dan de echte array vinden op de geheugenplaats die aangegeven wordt door de pointer.
Concreet wilt bovenstaande stukje code zeggen dat je geheugen hebt gereserveerd voor een type "pointer". Die pointer zal dezelfde grootte hebben als je bijvoorbeeld dit doet:
Een char zelf neemt minder geheugen in dan een integer, maar we hebben het hier over pointers.
Maakt de juiste code het niet onnodig ingewikkeld door zelfs niet-pointer arrays te referencen etc? Ja

.
Code:
printf("%c: ",*(dagen + i));
Of:
Code:
printf("%c: ", dagen[i]);
Gaat evengoed en is zelfs leesbaarder.
****
Code:
scanf("%d",&getallen[i]);
Scanf verwacht nu toevallig een pointer als tweede parameter:
scanf - C++ Reference
These arguments are expected to be pointers: to store the result of a scanf operation on a regular variable, its name should be preceded by the reference operator (&) (see example).
Je array "getallen"/"temperaturen" bevat gewoon integers en geen pointers. De variabele "getallen/temperaturen" is een pointer, maar de array zelf bevat geen pointers.
Een referentie (pointer) naar de integer kan je krijgen door zo een ampersand te prependen aan de variabelenaam.
Bijvoorbeeld:
Code:
int test;
scanf("%d", &test);
Dus kort samengevat:
Gewone integer
Pointer naar integer
Code:
int *test;
test = (int*) malloc(sizeof(int));
*test = 2323; // Om een waarde toe te kennen aan de integer ipv de pointer, moeten we de pointer "volgen".
// Het volgen van een pointer gebeurt via die asterisk "*".
Pointer naar array (100 elementen bv.)
Code:
int *test;
test = calloc(100, sizeof(int));
Gebruiken van deze array:
Code:
test[22] = 78;
test[0] = 2322323;
Het is inderdaad nogal vreemd omdat er hier geen asterisk wordt geschreven.
Dat is omdat de code in principe equivalent is met:
Code:
*(test + 22) = 78;
*(test + 0) = 2322323;
Meer info;
Pointers - C++ Documentation
A Tutorial on Pointers and Arrays in C
Als je dat goed doorhebt, zal je een aantal fouten zien in jouw code.
EDIT; Ah ok XD. te laat =D.