Passage des parametres a une fonction en c++

Résolu/Fermé
asma sisi Messages postés 96 Date d'inscription vendredi 29 août 2008 Statut Membre Dernière intervention 23 mars 2011 - 23 nov. 2008 à 18:53
togodo Messages postés 148 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 19 août 2009 - 23 nov. 2008 à 20:09
Bonjour,
je suis étudiante en deuxième année licence informatique (LMD) et on étudie on fait notre programmation avec le c++; ma question est
Lors du passage d'un tableau comme paramètre a une fonction on a deux façon l'une que je la maitrise est introduite sous cet exemple:
méthode 1:
#include<iostream>
void fct (int*t,......)
{
/* le t est un pointeur vers un entier qui est le premier élément du tableauet pour manipuler les autres cases du tableau en met *(t+i) tel que i est l'indice de la case voulu*/
.........
}
int main()
{
int tab[30];
....
........
/*l'appelle de la fct avec notre tableau déclaré dans le main*/

fct (tab,.....);
/*alors on va copier l'adresse du premier élément du tableau tab dans l'argument t de fct qui est (t un pointeur de ) */
}
méthode 2:
cet méthode consiste a mettre ca:

#include<iostream>
void fct (int t[],......)
{
.........
}
int main()
{
int tab[30];
........
/*l'appelle de la fct avec notre tableau déclaré dans le main*/

fct (tab,.....);
}
ma question est :
dans la deuxième méthode on va copier l'adresse du premier élément du tableau dans l'argument de la fonction fct qui doit être un pointeur mais dans l'argument de fct en a mis int tab[] et moi je pense que le type doit être int*
Si vous pouvez m'expliquer ou peut être me corriger
je m'excuse de la longueur du message et peut être des fautes
cordialement sisi
}
A voir également:

1 réponse

togodo Messages postés 148 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 19 août 2009 8
23 nov. 2008 à 20:09
Tu t'embrouilles,
dans la définition de la fonction fct : int *a et int a[] signifie la même chose ce sont des pointeurs renvoyant la même adresse,
a[0] renvoie la valeur du premier élément tout comme *a.
a[1] deuxième *(a+1).

On peut utiliser les * ou [] , mais c'est plus évident d'utiliser des [].
0