FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage haut niveau(C, Pascal...)


  [C/C++] Je comprend pas à quoi servent "&" et "*" dans les var

 




Il y a 26 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++] Je comprend pas à quoi servent "&" et "*" dans les var

n°2198
Deather2
OpenBSD: the way to go!
Posté le 14-03-2004 à 12:17:21  profilanswer
 

Bonjour à tous ;)
 
Voilà, j'ai un peu de mal a comprendre à quoi ca sert de mettre "*" ou "&" devant des variable, il me semble que l'étoile c'est pour les pointeurs ?
 
merci de votre aide :)

mood
Google
Posté le 14-03-2004 à 12:17:21  profilanswer
 

n°2199
Vince 007 ​-
C'est mignon une souris !
Posté le 14-03-2004 à 12:36:19  profilanswer
 

*var est un pointeur, ca retourne la valeur située à l'adresse "var".
 
&var ça retourne l'adresse de la variable "var".
 
Voilà, c'est pas plus compliqué que ça ! ;)


---------------
Balade moto dans la région toulousaine.
Suivre la construction d'une maison
n°2200
Deather2
OpenBSD: the way to go!
Posté le 14-03-2004 à 12:54:39  profilanswer
 

Merci beaucoup, mais tu entend quoi par "l'adresse" ? :)

n°2201
Vince 007 ​-
C'est mignon une souris !
Posté le 14-03-2004 à 13:17:46  profilanswer
 

Ben l'adresse physique de la donnée en mémoire !
 
Une variable est une donnée qui est stockée à une adresse !  
Quand tu déclare une variable en C, tu ne sait pas où le compilateur va la mettre, donc pour connaitre son adresse, tu utilise le & !
 
C'est utilisé quand tu veut retourner plusieurs variable par une fonction ! L'astuce consiste à passer les adresses des variables en paramètre, comme ça tu peut affecté des pointeurs locals à la fonction et retourner plusieurs variables.
 
Il est plus simple d'utiliser une variable globale, mais dans l'aéro, les softs ne doivent pas utiliser de variable globales, donc ça complique méchamment le soft !


---------------
Balade moto dans la région toulousaine.
Suivre la construction d'une maison
n°2202
Deather2
OpenBSD: the way to go!
Posté le 14-03-2004 à 13:37:45  profilanswer
 

Ah oki je vois :D Je m'en doutais mais bon je voyais pas vraiment l'interet alors j'ai préféré demandé ;)
 
Merci à toi ;)

n°2206
CryoGen
Powered by kitkat©
Posté le 14-03-2004 à 18:46:51  profilanswer
 

les pointeurs c'est super pratique :) moi j'adore ca :D


---------------
I am the bone of my sword...
n°2221
Vince 007 ​-
C'est mignon une souris !
Posté le 15-03-2004 à 20:46:54  profilanswer
 

CryoGen a écrit :

les pointeurs c'est super pratique :) moi j'adore ca :D


 
Ouai c'est pas mal, maintenant tu essai les pointeurs qui pointe sur une structure de pointeur ! :p
 
C'est un truc de fou, me suis bien cassé les dents sur ça !


---------------
Balade moto dans la région toulousaine.
Suivre la construction d'une maison
n°2222
nicodache
marmotte en chocolat concept ©
Posté le 15-03-2004 à 21:14:22  profilanswer
 

sinon, l'utilité des &, c'est aussi pour comparer des pointeurs... si leur adresse (&var1 == &var2), c'est forcément la même :d
 
enfin, je pense... qqun confirme ? ;)


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°2223
CryoGen
Powered by kitkat©
Posté le 15-03-2004 à 22:55:58  profilanswer
 

Vince 007 - a écrit :


 
Ouai c'est pas mal, maintenant tu essai les pointeurs qui pointe sur une structure de pointeur ! :p
 
C'est un truc de fou, me suis bien cassé les dents sur ça !


 
J'ai deja eu des pointeur de pointeur sur pointeur (***) et bien sur des void* void** void*** :D , c'est bien marrant sauf quand ca marche pas lol


---------------
I am the bone of my sword...
n°2226
Deadog
Dain Bramaged
Posté le 15-03-2004 à 23:48:26  profilanswer
 

Code :
  1. typedef float (*fonction_flottante_A_t) (float t);
  2. typedef int (*fonction_flottante_B_t) (int t);
  3. typedef float (*fonction_flottante_C_t) (float t, float u);
  4. typedef char* (*fonction_flottante_D_t) (int t, char c);
  5. typedef struct {
  6.   void *fonctionX, *fonctionY;
  7.   char identX, identY;
  8. } courbe_param;
  9. static float fonction1 (t)
  10.   float t;
  11. {
  12.   blablabla;
  13.   return squetuveux;
  14. }
  15. static float fonction2 (t, u)
  16.   float t, u;
  17. {
  18.   blablabla;
  19.   return squetuveux;
  20. }
  21. static char *fonction3 (t, c)
  22.   int t;
  23.   char c;
  24. {
  25.   blablabla;
  26.   return squetuveux;
  27. }
  28. courbe_param *init (void) {
  29.   courbe_param *ma_struct=NULL;
  30.   if((ma_struct = (courbe_param *) calloc(1, sizeof(courbe_param))) == NULL) return NULL;
  31.   ma_struct->fonctionX = fonction1;
  32.   ma_struct->fonctionY = fonction3;
  33.   return ma_struct;
  34. }
  35. char exploitation (ma_struct)
  36.   courbe_param *ma_struct;
  37. {
  38.   fonction_flottante_A_t fonctionA=NULL;
  39.   fonction_flottante_B_t fonctionB=NULL;
  40.   fonction_flottante_C_t fonctionC=NULL;
  41.   fonction_flottante_D_t fonctionD=NULL;
  42.   float fret;
  43.   int iret;
  44.   char cret;
  45.   if(ma_struct == NULL) return -1;
  46.   switch(ma_struct->identX)
  47.     case 'A':
  48.       fonctionA = ma_struct->fonctionX;
  49.       fret = (*fonctionA) (0.5);
  50.     break;
  51.     case 'B':
  52.       fonctionB = ma_struct->fonctionX;
  53.       iret = (*fonctionB) (7);
  54.     break;
  55.     case 'C':
  56.       fonctionC = ma_struct->fonctionX;
  57.       fret = (*fonctionC) (0.3, 7.8);
  58.     break;
  59.     case 'D':
  60.       fonctionD = ma_struct->fonctionX;
  61.       cret = (*fonctionD) (12, 'P');
  62.     break;
  63.   }
  64.   switch(ma_struct->identY) {
  65.     ...
  66.   }
  67.   ...
  68.  
  69.   return 0;
  70. }


 
 
vla un expl de la puissance et la maniabilité qu'offre les pointeurs :D
bien sur, le truc c de faire ça en communiquant entre 2 processus/programme, c plus marrant :o :) (en enlevant les static, et en partageant les headers, évidemment)
 
 

Vince 007 - a écrit :


 
Ouai c'est pas mal, maintenant tu essai les pointeurs qui pointe sur une structure de pointeur ! :p
 
C'est un truc de fou, me suis bien cassé les dents sur ça !


 
 
à partir du moment ou tu as une utlité à tes pointeurs dans ton struct ça pose pas trop de problème
genre des char* ou des void*


Message édité par Deadog le 15-03-2004 à 23:54:10
n°2228
mdf7
Posté le 16-03-2004 à 08:23:56  profilanswer
 

N'y a t'il pas quelqu'un qui puisse me faire un petit cours de C++ rapide car les bouquins : strokompliké dedans... et disons que j'ai une appli à développer en C++.
Il me faudrait les bases pour le code.
On m'a passé le code d'une appli qui a déjà été développée dans le cadre d'un projet similaire au mien, je comprend le code, mais moi même n'arrive pas à coder.....

n°2230
Deadog
Dain Bramaged
Posté le 16-03-2004 à 12:15:28  profilanswer
 

les bases rapidement ? impossible

n°2231
mdf7
Posté le 16-03-2004 à 13:07:27  profilanswer
 

Disons que j'ai les bases et un peu plus en Java, j'ai des notions de C mais je doit développer une appli en C++.
 
j'ai un peu moins de 3 semaines pour me familiariser avec le C++.


Message édité par mdf7 le 16-03-2004 à 13:08:21
n°2232
Deadog
Dain Bramaged
Posté le 16-03-2004 à 13:22:55  profilanswer
 

ah !
bah il faut que tu apprennes à te servir des class
c la différence fondamental avec le C, sinon c très très similaire

n°2234
Deather2
OpenBSD: the way to go!
Posté le 16-03-2004 à 18:19:57  profilanswer
 

On viens de recoder mon jeu ( c'est un petit RPG que je développe avec un ami ) du C vers le C++, j'peux vous dire que c'est galère, on utilise des class avec plein d'autres truc compliqué, et uvu que je ne connais que le C ( c'est mon pote qui a fais le "portage" ) je galère bien pour comprendre les classes, les héritages & cie :/
 
donc bon pour le moment j'apprend les differences entre ces deux language... ensuite je verrai :p

n°2425
DarkBears
j'aime le miel put1 d'abeilles
Posté le 30-03-2004 à 23:04:23  profilanswer
 

ouais mais l'avantage sur C++ c'est que tes fonctions sont plus courte et plus facile à adapter après enfin je vois la différence quand je programme les différent ports du pc pour récupérer des données !
C++ plus facile pour ça :D

n°2572
shinois
Posté le 13-04-2004 à 04:40:20  profilanswer
 

:love: jaimerais bien apprendre ca mais jsuis noob en la matiere par ou commencer?? :jap:

n°2590
Deather2
OpenBSD: the way to go!
Posté le 14-04-2004 à 02:47:43  profilanswer
 
n°2598
Deadog
Dain Bramaged
Posté le 14-04-2004 à 17:46:14  profilanswer
 
n°2602
DarkBears
j'aime le miel put1 d'abeilles
Posté le 14-04-2004 à 20:04:53  profilanswer
 

tu achete un livre de programmation genre C pour les nuls !!
 
Sincèrement ces livres sont super complète pour avoir une formation de base !

n°2607
Deadog
Dain Bramaged
Posté le 14-04-2004 à 23:48:46  profilanswer
 

complet ne va pas avec formation de base !!
 
franchement, ces livre la c'est bien pour ki débute et ki veux ne pas allé plus loin, pke t'es vite sur ta soif et il existe aucun livre prenant la suite de la formation
 
sinon tu rachètes un vrai livre de C/C++ et tu te retappes toutes les bases, avec les frais des 2 livres en plus :D
commence avec un livre de la collection oreilly ou eyrolles (ortho à vérifié) + plus un livre sur le developpement sur telle ou telle plate forme (la programmtion unix, la programmation windows, la programmation POSIX, ...)


Message édité par Deadog le 14-04-2004 à 23:49:57
n°2610
Deather2
OpenBSD: the way to go!
Posté le 15-04-2004 à 13:35:49  profilanswer
 

Pour débuter le C, j'ai réécrit des petite fonction UNIX genre "cat" :lol:
Perso, j'ai le bouquin de Kernighan et Ritchie ( pas sur de l'ortho ), edition 1988 LOL :D

n°2611
DarkBears
j'aime le miel put1 d'abeilles
Posté le 15-04-2004 à 13:40:12  profilanswer
 

Deadog a écrit :

complet ne va pas avec formation de base !!
 
franchement, ces livre la c'est bien pour ki débute et ki veux ne pas allé plus loin, pke t'es vite sur ta soif et il existe aucun livre prenant la suite de la formation
 
sinon tu rachètes un vrai livre de C/C++ et tu te retappes toutes les bases, avec les frais des 2 livres en plus :D
commence avec un livre de la collection oreilly ou eyrolles (ortho à vérifié) + plus un livre sur le developpement sur telle ou telle plate forme (la programmtion unix, la programmation windows, la programmation POSIX, ...)


 
ouais vraiment les bases pour écrire hello world à l'écran :lol:
 
sinon j'ai acheté deux vrai livre 125€ en tous :cry:

n°2617
Deadog
Dain Bramaged
Posté le 17-04-2004 à 05:16:25  profilanswer
 

darkbears a écrit :


 
ouais vraiment les bases pour écrire hello world à l'écran :lol:
 
sinon j'ai acheté deux vrai livre 125€ en tous :cry:


 
 
la culture n'a pas de prix :sweat: *SALO D'EDITEURS :o*

n°2627
DarkBears
j'aime le miel put1 d'abeilles
Posté le 18-04-2004 à 23:29:52  profilanswer
 

je suis d'accord vive la lecture open source :D

n°2629
Dr lous
I see old password
Posté le 19-04-2004 à 06:57:57  profilanswer
 

nan vive les femme open source [:grut]
 
:lol:

n°2630
DarkBears
j'aime le miel put1 d'abeilles
Posté le 19-04-2004 à 10:07:01  profilanswer
 

moi j'en reçoit une dans 2h je vais aller la chercher et elle reste chez moi :D
 
sinon le truc qu'est lourd dans les livres c'est les exemples qui marchent pas :D

n°2631
Deather2
OpenBSD: the way to go!
Posté le 19-04-2004 à 14:20:37  profilanswer
 

:lol: Amuses toi bien Darkbears :ange:
 
Moi perso, j'utilise que les tutos sur le net ... d'ailleur si je trouve un site qui réuni pas mal de liens, je vous en ferai part ^^

mood
Google
Posté le 19-04-2004 à 14:20:37  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage haut niveau(C, Pascal...)


  [C/C++] Je comprend pas à quoi servent "&" et "*" dans les var

 

Hit Parade