La question n'est pas si &tab a ou n'a pas de signification (oui c'est ce que j'ai écrit dans mon dernier post mais c'était une maladresse et j'ai d'ailleurs bien précisé que ma retranscription n'était pas à l'exacte réplique des idées échangées la dernière fois qu'on avait évoqué ce sujet) mais plutôt de savoir si &tab est réellement identique à tab. Comment deux adresses identiques pourraient référencer deux objets différents qui cohabiteraient ensembles ? j'ai essayé d'afficher pTab et *pTab mais j'obtiens la même chose.
Accessoirement on peut écrire à la place int *pTab=tab et obtenir le même résultat.
On retrouve d'ailleurs la même question avec les pointeurs de fonctions
On peut mettre autant d'étoiles que l'on veut dans le printf(), l'adresse affichée est toujours la même. Et on peut de la même façon mettre autant d'étoiles que l'on veut lors de l'appel du pointeur...
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdio.h> void affiche(int n) { printf("%d\n", n); } int main() { void (*pt)(int)=affiche; (*pt)(5); // Ou bien (*************pt)(5) printf("%p\n", pt); printf("%p\n", *pt); printf("%p\n", **pt); printf("%p\n", ***pt); printf("%p\n", ****pt); }
Partager