Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS C FAQs C TUTORIELS C LIVRES C COMPILATEURS C SOURCES GTK+
next up previous contents index
Next: Interdiction de modification des Up: Relations entre tableaux et Previous: Passage de tableau en

   
Modification des éléments d'un tableau passé en paramètre

Lorsqu'on passe un paramètre effectif à une procédure ou une fonction, on a vu que l'on passait une valeur. Il est donc impossible à une procédure de modifier la valeur d'une variable passée en paramètre.

En ce qui concerne les tableaux par contre, on passe à la procédure l'adresse du premier élément du tableau. La procédure pourra donc modifier si elle le désire les éléments du tableau.

Il semble donc que le passage de tableau en paramètre se fasse par adresse et non par valeur et qu'il s'agisse d'une exception à la règle qui affirme qu'en C, tout passage de paramètre se fait par valeur. Mais il n'en est rien : c'est la conversion automatique des identificateurs de type tableau qui provoque ce phénomène.

Du point de vue pratique, on retiendra que l'on peut modifier les éléments d'un tableau passé en paramètre. On peut écrire par exemple :

/*   incr_tab fait + 1 sur tous les éléments du tableau t  */
void incr_tab(int t[], int nb_elem)  
{
int i;

for (i = 0; i < nb_elem; i++) t[i]++;
}



Bernard Cassagne
1998-12-09
Responsable bénévole de la rubrique C : Arnaud Feltz (buchs) - Contacter par EMail :
Vos questions techniques : forum d'entraide C - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.