-3
votes

Je veux changer de valeur variable, mais tout ce que je veux que l'adresse de la mémoire reste la même, comment puis-je faire ça

int x=5;
int &time=x;
int *ptr_x = &time;

while(1)
    cout << (*ptr_x) << endl;
    (*ptr_x)++;
i want to change "variable value" but all i want "address" will stay same, how can i do that –
c c++

5 commentaires

Vous avez commencé avec un langage complexe comme C ++ sans lire un livre. Il n'est pas possible d'apprendre la langue à l'aide de la méthode Essayer et de deviner (plus SO POST) Voter pour fermer


@CDHOWIE (* PTR_X) ++ incrémente la valeur, pas le pointeur. Et c'est en dehors de la boucle.


Si j'augmente la valeur, l'adresse sera toujours identique, je dois savoir que


Vous pouvez imprimer l'adresse avec std :: COUT << PTR_X .


désolé mec ii je ne suis pas perroquet @__P


3 Réponses :


1
votes

Si vous incrémentez la variable du pointeur, cela indiquera ensuite quelque chose d'autre. Si vous incrémentez ce que le pointeur pointe vers la variable du pointeur indiquera toujours la même chose, mais que cette chose aura été incrémentée.

Un pointeur est essentiellement un signe disant "La chose est là-bas". Si vous augmentez le pointeur, vous modifiez le signe pour faire «là-bas» autre chose. Si vous avez une déréférence, le pointeur et l'incrément, vous suivez essentiellement les instructions sur le panneau, puis incrémentez tout ce qui est «là-bas», mais le signe est inchangé.


2 commentaires

Je veux changer de valeur variable, mais tout ce que je veux que la valeur de l'adresse reste la même, comment puis-je faire ça


Pourquoi cette réponse a-t-elle été évitée? :pense:



2
votes

Quelle est la différence entre l'incrémentation de la valeur des pointeurs et la valeur du pointeur?

  1. valeur du pointeur d'incrément Cela signifie que vous avez un pointeur pointant à une valeur. Vous augmentez la valeur . Le fait qu'il y ait quelque chose qui pointe est "accidentel".
  2. incrément la valeur du pointeur Cela signifie que vous avez un pointeur pointant vers quelque chose et en augmentant la valeur du pointeur, vous modifiez la direction à laquelle cela pointe. C'est à dire. Vous ne dirigez plus cette valeur, vous remarquez quelque chose de totalement différent maintenant. Si vous avez un tableau, si vous dirigez un élément dans le tableau et augmentez le pointeur dans [Taille de l'élément stocké dans la matrice], vous finirez de pointer vers l'élément suivant.

    J'espère que cela vous aidera!


6 commentaires

Valeur pointée Valeur VS Valeur variable, si j'augmente la variable, l'adresse change-t-elle ??


Si vous augmentez * PTR, vous changeriez la valeur. Si vous augmentez le PTR, vous changerez l'adresse.


Je veux augmenter la valeur variable sans changer l'adresse de la mémoire


OK, augmentez * PTR alors!


Donc, cela se produira à la même adresse non?


Oui, l'adresse pointue ne sera pas modifiée



2
votes

Quelle est la différence entre l'incrémentation de la valeur des pointeurs et la valeur du pointeur?

La valeur du pointeur est la valeur du pointeur. Il n'y a pas de différence entre ces deux.

indirectant via un pointeur pour obtenir une référence à la valeur pointue et incrémenter la valeur pointue modifie la valeur pointue.

L'incrémentation de la valeur du pointeur change la valeur du pointeur, c'est-à-dire qu'il indiquera à un autre objet. Plus précisément, il indiquera le suivi suivant de l'élément pointu à l'origine d'un tableau.


1 commentaires

Ce sera la valeur pointue des pointeurs vs la valeur variable