Maison > développement back-end > C++ > le corps du texte

Les références C consomment-elles réellement de la mémoire ?

DDD
Libérer: 2024-11-06 07:42:02
original
463 Les gens l'ont consulté

Do C   References Actually Consume Memory?

Disséquer l'empreinte mémoire des références C

Contrairement aux pointeurs, qui contiennent l'adresse mémoire d'une variable, les références C fournissent un alias direct vers une autre variable. Cela soulève des questions sur l'empreinte mémoire des références.

Comprendre la disposition de la mémoire

Considérons l'exemple :

int i = 42;
int& j = i;
int k = 44;
Copier après la connexion

Pendant que i et k occupent 4 octets chacun sur la pile, j ne consomme apparemment aucune mémoire. En effet, j est simplement un alias pour i, partageant le même emplacement mémoire.

Références en tant qu'arguments de fonction

Même lorsqu'elle est passée en tant qu'argument de fonction, une référence ne cela ne prend pas de place sur la pile appelante. Au lieu de cela, la pile de fonctions reçoit elle-même l'adresse de la variable référencée, ce qui permet de transmettre efficacement des objets volumineux.

Adressage de l'allocation de mémoire pour les références

Cependant, le compilateur le fait réserver de l'espace sur la pile pour les références dans certaines circonstances, par exemple lors de la définition de références locales dans des fonctions ou lors de la création de classes avec des références de membres.

Restrictions sur les références

Le C la norme interdit les tableaux et les références de références. Les tableaux de références sont interdits en raison du risque de références pendantes (c'est-à-dire des références pointant vers une mémoire invalide). De plus, les références aux références seraient redondantes, car la référence elle-même fournit déjà l'indirection nécessaire.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!