dans le code ci-dessous, je ne vois pas pourquoi
je suis obligé de déréférencer 2 fois &tab pour
avoir la valeur pointée (lignes 'ICI') étant donné
que tab et &tab ont les mêmes valeurs.
Mon raisonnement est le suivant, corrigez-moi si j'ai faux :
- tab est un tableau de 3 entiers, le type de tab est donc int[3],
- &tab est l'adresse du tableau de 3 entiers, c'est donc un pointeur
constant(?) vers un tableau de 3 entiers, le type de &tab est donc
int (*p)[3].
Mais &tab est équivalent à tab, à &tab[0] et à tab+0. Après je ne sais
plus...
Merci de bien vouloir me donner des explications simples et "décortiquées".
Lip
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int tab[3] = {1,2,3};
/* les formes de l'adresse du tableau */
printf("Valeur de tab : %p\n", tab);
printf("Valeur de &tab[0] : %p\n", &tab[0]);
printf("Valeur de tab + 0 : %p\n", tab + 0);
printf("Valeur de &tab : %p\n", &tab);
Je croyais plutôt qu'il y fallait un diagnostique du compilateur.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
|> Charlie Gordon wrote on 25/10/04 :
|> > La question a trouvé réponse, mais que dire de ces quelques lignes :
Je croyais plutôt qu'il y fallait un diagnostique du compilateur.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Je croyais plutôt qu'il y fallait un diagnostique du compilateur.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34