Sont des variables en C ++ implicitement des pointeurs

Oct 16 2020

J'ai du mal à essayer de comprendre cela. Lorsque nous tapons en c ++

int a = 4;

Il est clair que le gestionnaire de mémoire alloue 4 octets pour contenir la valeur 4 et conserve cette valeur dans une adresse spécifique. Donnant le fait que "une" variable n'est qu'un nom.

  1. Où la variable "a" est-elle stockée?
  2. Est-ce qu'il le stocke quelque part dans la mémoire et pointe vers l'adresse mémoire de 4, puisque nous savons que 4 n'est qu'un objet temporaire en soi et que "a" lie en quelque sorte une référence ou un pointeur

Réponses

2 eerorika Oct 15 2020 at 23:47

Sont des variables en C ++ implicitement des pointeurs

Non. Les variables ne sont pas implicitement des pointeurs.

Où la variable "a" est-elle stockée?

Quelque part (ou nulle part ) dans la mémoire. L'allocation de mémoire pour les variables est la responsabilité de l'implémentation du langage.

Le stocke-t-il quelque part dans la mémoire

Oui (ou nulle part).

et pointe vers l'adresse mémoire de 4

Non. Un tel pointeur n'existe pas dans la machine abstraite.

Alors, comment "a" connaît-il l'objet "4"

4 n'est pas un objet. 4 est un littéral ou une valeur en fonction du contexte / de la perspective.

an'est pas quelque chose qui sait quoi que ce soit. Le compilateur sait que l'objet nommé par aa la valeur 4.

3 RSahu Oct 15 2020 at 23:43
  1. Où la variable "a" est-elle stockée?

D'après mon expérience, "a" n'est pas stocké au moment de l'exécution. La norme n'exige pas non plus qu'elle soit stockée. C'est un nom utilisé pour la compilation, la liaison et le débogage. Les données nécessaires au compilateur, à l'éditeur de liens et au débogueur sont spécifiques à la plate-forme. La norme ne dicte pas la nature de ces données.

Compte tenu de cela, votre deuxième question peut être ignorée.