A quoi sert le & devant un tableau?
Résolu/Fermé
alin
-
Modifié par alin le 1/06/2013 à 15:37
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 juin 2013 à 20:50
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 juin 2013 à 20:50
A voir également:
- A quoi sert le & devant un tableau?
- Tableau croisé dynamique - Guide
- Code ascii tableau - Guide
- Comment faire un tableau - Guide
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif suivant. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des 4 premières colonnes. cinq valeurs manquent dans le tableau suivant. retrouvez-les dans votre tableau puis reportez-les, arrondies à l’entier le plus proche, dans la zone de réponse. - Forum Excel
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
3 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
1 juin 2013 à 16:24
1 juin 2013 à 16:24
Le & n'est pas mis devant le tableau mais devant la case T[i] qui est un char.
Parce qu'en paramètre de scanf il faut donner un pointeur de la valeur à modifier.
Or T[i] est un char, il faut donc utiliser son pointeur associé : &T[i]
Ton code est équivalent à faire :
Ensuite, les tableaux ont des espaces mémoires contiguës, c'est à dire que toutes les cases du tableau sont les unes après les autres en mémoire.
Donc si le tableau est référencé par le pointeur T, alors sa première case est pointé à la même adresse mémoire T (on peux aussi dire T+0), ensuite la case 1 du tableau est juste après la case 0, donc pointé par T+1, etc.
T+i est donc la ième adresse mémoire à côté de T, c'est à dire le pointeur de la case T[i], qui est donc équivalent à &T[i].
Parce qu'en paramètre de scanf il faut donner un pointeur de la valeur à modifier.
Or T[i] est un char, il faut donc utiliser son pointeur associé : &T[i]
Ton code est équivalent à faire :
char c; scanf("%c",&c); T[i]=c;
Ensuite, les tableaux ont des espaces mémoires contiguës, c'est à dire que toutes les cases du tableau sont les unes après les autres en mémoire.
Donc si le tableau est référencé par le pointeur T, alors sa première case est pointé à la même adresse mémoire T (on peux aussi dire T+0), ensuite la case 1 du tableau est juste après la case 0, donc pointé par T+1, etc.
T+i est donc la ième adresse mémoire à côté de T, c'est à dire le pointeur de la case T[i], qui est donc équivalent à &T[i].
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
1 juin 2013 à 20:50
1 juin 2013 à 20:50
KX a tout dit.
Je ferai donc juste part d'une erreur :
for (i=0; i<=N; i++)
Attention, le tableau T a N char et le tableau commence à l'indice 0. Le dernier indice est donc N-1.
Il faut donc mettre : for(i=0; i<N; i++)
Cdlt,
Je ferai donc juste part d'une erreur :
for (i=0; i<=N; i++)
Attention, le tableau T a N char et le tableau commence à l'indice 0. Le dernier indice est donc N-1.
Il faut donc mettre : for(i=0; i<N; i++)
Cdlt,