Maison > développement back-end > C++ > Pourquoi `t`, `&t[0]` et un pointeur vers `t` ont-ils la même adresse ?

Pourquoi `t`, `&t[0]` et un pointeur vers `t` ont-ils la même adresse ?

Susan Sarandon
Libérer: 2024-11-26 08:12:09
original
138 Les gens l'ont consulté

Why Do `t`, `&t[0]`, and a Pointer to `t` Have the Same Address?

Pourquoi t, &t[0] et t convertis en pointeur ont la même adresse

Un tableau est un bloc de mémoire contigu contenant des éléments du même type de données. Lorsque vous déclarez un tableau, le compilateur alloue un bloc de mémoire et crée des pointeurs vers chaque élément de ce bloc.

Cas 1 : t et &t[0]

Lorsque vous utilisez t seul (sans aucun indice), il subit une conversion tableau en pointeur, qui génère un pointeur vers le premier élément du tableau. Ce comportement équivaut à utiliser &t[0], qui renvoie explicitement l'adresse du premier élément. Par conséquent, t et &t[0] ont la même valeur.

Cas 2 : &t

Cependant, lorsque vous appliquez l'opérateur & à t, ce n'est pas le cas. déclencher la conversion tableau en pointeur. Au lieu de cela, &t prend directement l'adresse de t lui-même, ce qui entraîne un pointeur vers l'ensemble du tableau.

En mémoire, le premier élément du tableau et le début du tableau résident au même emplacement. Par conséquent, les pointeurs t, &t[0] et u (qui est un pointeur vers t) ont tous la même adresse.

Explication de sortie :

Le donné le code démontre ce comportement :

int t[10];
int * u = t;

cout << t << " " << &t << endl;
cout << u << " " << &u << endl;
Copier après la connexion

Sortie :

0045FB88 0045FB88
0045FB88 0045FB7C
Copier après la connexion

La sortie montre que t, &t[0], et u ont la même valeur (0045FB88), confirmant leur équivalence en tant que pointeurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal