Cas particulier d'un tableau en paramètre d'entrée-sortie

Les tableaux en C sont des pointeurs, dans le cas d'un tableau en paramètre de fonction ou de procédure c'est l'adresse du tableau qui sera transmise au paramètre effectif et JAMAIS le contenu du tableau.  Le & n'est donc pas nécessaire pour un tableau en paramètre formel puisque un tableau est un pointeur.

extrait de l'algorithme de l'appelant
extrait de l'algorithme de la procédure  saisirTab
Variables:
en entrée:
  int tailleTab = 15;
  int tab[tailleTab];
  int nbEff = 10;


Corps de l'algorithme détaillé:

  saisirTab(tab, nbeff); /* appel de la procédure saisirTab. IL N'Y A PAS DE & DEVANT tab */

Titre de la procédure:
  saisirTab

Prototype de la procédure:

  saisirTab(<> int t[], >int n)


Description du problème:

  Saisie les valeurs et initialise les n éléments d'un tableau tab.

corps de l'algorithme détaillé:

for (i=0; i < n; i++)  
/* début de la boucle de saisie */
   demander("\nEntrer une valeur entière:", t[i]);
 
/* fin du for */
Traduction en C
/* ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * Nom du programme : 
   initTab
  *  Nom du fichier source : initTab.c
 * Auteur :  Pascal Coupey
 * Date de création :  23/09/04
 * Description : initialise un certain nombre fixé d'élément d'un tableau
                                                              
 * Historique des révisions: version 0
 *----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 */

/* Les includes */
#include <stdio.h>


/* Les defines */
#define TAILLETAB 15

/* ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * Nom de la fonction : 
  saisirTab
 * Description :  
Saisie les valeurs et initialise les n éléments d'un tableau tab.                                                               
 *----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

*/
void saisirTab (int t[], int n)
{
 int i;

 for (i=0; i < n; i++)  /* début de la boucle de saisie */
  {
   printf("\nEntrer une valeur entière:");
   scanf("%f", &t[i]);
  }  /* fin du for */
}
/* fin de la procédure saisirTab */
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/

/* Programme principal */
int main(void)
{
  int tab[TAILLETAB];
  int nbEff = 10;

  saisirTab(tab, nbeff);
  return(0);
}

suivant                plan