CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] - Question sur pointeurs

Karysmatyk
Karysmatyk
Niveau 23
05 juillet 2021 à 18:17:43

Hello,

Actuellement en apprentissage du langage C++, j'étudie les pointeurs.
Lorsque nous voulons affecter une valeur à une variable qui est pointée par un pointeur, mieux vaut passer par le pointeur ou par la variable en elle même ?

Exemple :
int main()
{
int number{12};
int *ptr_number{&number};

number = 5 ; // Possibilité 1
*ptr_number = 5 ; // Possibilité 2

return 0;
}

Laquelle des deux possibilité est préférable ? Il y a t'il un avantage à utiliser une deux possibilités ?

Merci d'avance

Message édité le 05 juillet 2021 à 18:18:53 par Karysmatyk
Karysmatyk
Karysmatyk
Niveau 23
05 juillet 2021 à 18:36:43

Le 05 juillet 2021 à 18:32:44 :
Si t'as une variable t'utilises la solution 1 et si t'as un pointeur t'utilises la solution 2, je comprend pas vraiment la question.

Dans l'exemple mentionné en haut, que j'affecte 5 à la variable number en faisant "number = 5;" ou passant par le pointeur : " *ptr_number = 5 ;" le résultat est le même, la variable number vaudra 5.

Du coup ma question est de savoir s'il une des deux méthodes est préférable, si oui pourquoi ?

Ma question est peut être débile hein, j'apprends et pour l'instant je ne trouve pas de réponse à ma question

CppModerne
CppModerne
Niveau 3
05 juillet 2021 à 18:51:49

La méthode 1 est à privilégier le plus possible. Le pointeur est un outil puissant mais complexe, nul besoin d'en créer à tout-va. Il faut une réelle bonne raison pour utiliser les pointeurs. Par ailleurs il existe également une troisième technique pour affecter une valeur à notre variable : les références.

int& ref_number{number};
ref_number = 5; // Possibilité 3

Cette écriture est équivalente, mais encore une fois si on n'a pas besoin de références on s'en passera.

Je te recommande d'apprendre le C++ Moderne, et ne pas passer par n'importe quel tutoriel sur Internet ou livre datant de plusieurs dizaines d'années.

Message édité le 05 juillet 2021 à 18:52:32 par CppModerne
Karysmatyk
Karysmatyk
Niveau 23
05 juillet 2021 à 18:56:42

Le 05 juillet 2021 à 18:51:49 :
La méthode 1 est à privilégier le plus possible. Le pointeur est un outil puissant mais complexe, nul besoin d'en créer à tout-va. Il faut une réelle bonne raison pour utiliser les pointeurs. Par ailleurs il existe également une troisième technique pour affecter une valeur à notre variable : les références.

int& ref_number{number};
ref_number = 5; // Possibilité 3

Cette écriture est équivalente, mais encore une fois si on n'a pas besoin de références on s'en passera.

Je te recommande d'apprendre le C++ Moderne, et ne pas passer par n'importe quel tutoriel sur Internet ou livre datant de plusieurs dizaines d'années.

Super, merci beaucoup pour ton retour !

Je suis actuellement le cours "Beginning C++ Programming - From Beginner to Beyond" sur Udemy, j'avais vu ton topic avec un cours en FR sur le C++ moderne, mais j'avais déjà acheté ce cours, dommage :hap:

Jency14
Jency14
Niveau 6
05 juillet 2021 à 19:13:43

Possibilité 1, au cas où tu as un ptr_number = nullptr; quelque part dans ton code

Lapintade
Lapintade
Niveau 30
06 juillet 2021 à 10:27:19

Comme a dit CppModerne, commence par utiliser les variable et leur utilisation par "valeur". Il faut savoir qu'un pointeur, ca utilise la meme taille qu'un int. Donc utiliser un pointeur pour manipuler un int, ca n'a pas trop de sens (car tu perds en simplicitié, tu prends deux fois plus de memoire).

Par contre quand tu commencera a manipuler des choses plus gros, par exemple un tableau de 1000 int, a ce moment la, tu va mieux comprendre l'intérêt d'utiliser des références (éviter les pointeurs pures oui, c'est plus complexe et moins moderne).

Tu peux d'ailleurs refaire l'exercice avec un tableau de 1000 valeurs et une fonction pour les afficher. Tu comprendras vite que ca va etre lourd de passer en argument tes 1000 int vers ta fonction. Passer juste une reference, c'est plus rapide et elegant.

Les petits exercices de code c'est sympas, mais si ca n'as pas vraiment de sens et pas de contexte, ca peut etre dure a comprendre en effet.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment