C/Blocchi e funzioni/Funzioni: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Pietrodn (discussione | contributi)
aggiunte
Riga 19:
In questo caso l'istruzione <tt>return</tt> è facoltativa.
Può servire per un'uscita prematura, cioè per terminare la funzione prima di giungere in fondo.
L'istruzione <tt>return</tt> delle funzioni che rendono un <tt>void</tt> non ammette parametri.
 
LSe la funzione è stata dichiarata per restituire <tt>void</tt>, essa non restituirà alcun valore: l'istruzione <tt>return</tt> delle funzioni che rendono un <tt>void</tt> non ammette parametri.
La parentesi aperta subito seguita da quella chiusa indica che alla funzione non sono passati parametri.
 
La parentesi aperta subito seguita da quella chiusa indica che alla funzione non sono passati parametri. I vecchi compilatori C non accettano una parentesi chiusa e una aperta con niente in mezzo per indicare che non si restituiscono parametri: per ottenere ciò si deve indicare fra le parentesi <tt>void</tt>.
 
Esempio:
Line 41 ⟶ 42:
<tt>main</tt> è la funzione principale che viene chiamata all'avvio del programma.
 
===Funzioni e puntatori===
Se ad una funzione viene passato un puntatore, essa sarà in grado di modificare lail valore della variabile puntata dal puntatore.
Per esempio:
 
Line 64 ⟶ 65:
#Dentro <code>doubleof</code> viene eseguita l'istruzione <code>* x = (* x) * 2;</code>, che assegna alla variabile puntata da <tt>x</tt> (<tt>a</tt>) il valore della stessa variabile puntata da <tt>x</tt> moltiplicato per 2.
#<code>printf("%d", a);</code> Stampa il valore ottenuto.
 
Se invece il nostro programma fosse stato così, avrebbe restituito <tt>2</tt>.
 
int main ()
{
int a=2;
doubleof(a);
printf("%d", a);
return 0;
}
void doubleof(int x)
{
x = x*2;
}
 
Per una maggiore comprensione di questo paragrafo, si veda prima la [[Linguaggio_C/Vettori_e_puntatori/Puntatori|sezione dedicata ai puntatori]].