Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2248 connectés 

  FORUM HardWare.fr
  Programmation

  Débutant en C...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Débutant en C...

n°16559
Jacouille
Posté le 01-03-2001 à 17:07:31  profilanswer
 

Vous foutez pas de ma gueule, mais je comprends vraiement pas l'utilité des pointeurs, à part emmer... les pauvres petits étudiants. :-)
Notre prof veut absolument que l'on utilisent les pointeurs alors que de simples variables toutes bêtes suffiraient.
Si vous avez de bons liens, n'hésitez pas.
Merci

mood
Publicité
Posté le 01-03-2001 à 17:07:31  profilanswer
 

n°16560
seblamb
Posté le 01-03-2001 à 17:14:58  profilanswer
 

Les pointeurs tous les langages en ont (même s'ils ne sont pas aussi visibles qu'en C) et les microporcesseurs ont des fonction spécialement prévues pour les pointeurs.
 
En gros tu n'a pas bien compris les grands principes de la programmation. Donc le conseil que je te donne c'est de faire le plus possibles de programmes et petit à petit tu comprendra.  
 
Par example amuse toi à faire une fonction qui inverse le contenu de 2 variables en C.

n°16565
Jacouille
Posté le 01-03-2001 à 17:52:46  profilanswer
 

C'est droit le genre d'exercices que nous donnent notre prof.
Bon faut dire que depuis qu'il a commencé à parler des pointeurs, la moitié des élèves ont lachés(tout des électroniciens).
Bon on va continuer a faire plein d'exercices.
 
Merci

n°16567
verdoux
And I'm still waiting
Posté le 01-03-2001 à 17:56:12  profilanswer
 

Pourtant les pointeurs, c'est très basique, dans le sens proche du fonctionnement du CPU et de la prog assembleur.
Ca aurait dû plaire aux électronicien.

n°16568
xilebo
noone
Posté le 01-03-2001 à 18:05:01  profilanswer
 

Le pointeur est indispensable car il permet de stocker l'adresse d'un bloc memoire .
 
Par exemple , la fonction malloc alloue une zone de memoire et le retour de la fonction contient l'adresse du debut de cette zone de memoire. Tu ne pourrais pas manipuler cette memoire allouée si tu n'avais pas les pointeurs.
 
Moi aussi quand j'ai commencé à programmer ( c'etait quand deja ? ), je ne comprenais pas a quoi servait les pointeurs, mais a force de programmer , je me suis rendu compte de leur utilité ( ils sont meme indispensables ).

n°16575
LeGreg
Posté le 01-03-2001 à 19:17:56  profilanswer
 

On peut aussi avoir des pointeurs
caches comme en java.
Tout depend de savoir quel degre d'abstraction
on recherche.  
Sinon si on veut devenir programmeur (professionnel)
il est bon tout de meme de savoir ce qu'est un pointeur..
 
Legreg

n°16580
la viper
Posté le 01-03-2001 à 20:36:21  profilanswer
 

ca permet aussi d'optimiser tes programmes
 
au lieu de faire passer une variable de 100 octets par exemple tu passes son adresse (4 octets) ... tu vois l'interet ???
de plus, bcp de fonction ne sont exploitable que par les pointeurs .. ca te permet un gain de temps important mais par contre ca fait plus mal à la tete :fou:

n°16598
nawbacan
==>L'informatique est ma joie
Posté le 01-03-2001 à 23:00:25  profilanswer
 

voici une comparaison que j'aime bien :
 
"Manipuler les pointeurs, c'est un peu comme jouer avec le feu. Le feu est sans doute l'outil le plus important de l'homme.. utilisé avec précaution, le feu est considérablement utile; mais quel désastre s'il n'est plus contrôlé ."
 
elle est tirée d'un bouquin de programmation séquentielle en Ada 95

n°16601
BifaceMcLe​OD
The HighGlandeur
Posté le 01-03-2001 à 23:27:13  profilanswer
 

nawbacan> Ada95 ? Ca ne m'étonne pas ! :D
Tout à fait l'esprit de ce langage : disposer de tous les outils performants connus, pour n'avoir à utiliser les plus puissants (et les plus dangereux donc) que quand on en a vraiment besoin.
 
Jacouille> Je te comprends parfaitement. Moi-même, j'ai mis un certain temps avant de comprendre l'intérêt des pointeurs (mais j'apprenais par moi-même à l'époque, je ne faisais pas encore d'études en informatique). C'est vrai, quelle est l'utilité d'un pointeur sur entier quand un simple entier suffit ? En fait, les pointeurs commencent à être intéressants dans le cas suivant. Supposons que l'on définisse la structure suvante:
 
   typedef struct _Noeud {
      int            info;
      struct _Noeud  suivant;
   } Noeud;
 
et puis la fonction:
 
   Noeud* nouveau_noeud(int info)
   {
       Noeud*  noeud = (Noeud*) malloc(sizeof(Noeud));
 
       noeud->info    = info;
       noeud->suivant = NULL;
 
       return noeud;
    }
 
La fonction nouveau_noeud() permet de créer facilement un... nouveau noeud, justement.
 
Et bien là où ça devient intéressant, c'est quand tu réalises qu'avec cette structure, tu peux attacher plein de "noeuds" les uns aux autres, "à la queue-leu-leu" (en écrivant noeud1->suivant = noeud2;".
 
Certes, un seul noeud revient à un entier, mais à un entier auquel tu peux attacher un autre entier, auquel lui-même, tu peux attacher encore un troisième entier, etc.
 
Bref, c'est un peu comme un tableau d'entiers, mais dont la taille varierait selon tes besoins... et quasiment sans aucune limite supérieure (en fait, globalement, la limite, c'est toute la mémoire disponible dans ta machine... ce qui fait un sacré paquet de noeuds !).
 
La structure de données que j'ai décrite ci-dessus est la structure dite de "Liste". C'est la plus simple structure algorithmique requérant des pointeurs, et une fois qu'on l'a comprise, on peut attaquer des structures de données (qui requièrent aussi des pointeurs) plus complexes -- mais toujours aussi utiles -- comme les files d'attente, les arbres (binaires ou autres), les graphes, ....
 
Donc une fois que tu as compris ça, le reste devrait venir plus facilement.
 
Quand aux autres raisons sur l'utilité des pointeurs -- genre c'est permet de faire des programmes plus optimisés -- tu peux les oublier, au moins pour le moment. La programmation est suffisamment compliquée comme ça pour n'utiliser les pointeurs que quand il y en a vraiment besoin, c'est-à-dire quand l'algorithmique elle-même y fait appel (ceci dit, savoir utiliser les pointeurs quand on en a besoin nécessite de savoir les utiliser... tout court !).
 
De toute façon, dans les langages un minimum évolués, le compilateur (s'il est un tant soit peu intelligent) fera ce qu'il faut pour rendre ton code optimisé, et mettra des pointeurs dans le code généré quand il en faut.

 

--Message édité par BifaceMcLeOD--

n°16602
la viper
Posté le 01-03-2001 à 23:31:40  profilanswer
 

ca sent les arbres ca ...

mood
Publicité
Posté le 01-03-2001 à 23:31:40  profilanswer
 

n°16607
Jacouille
Posté le 01-03-2001 à 23:52:24  profilanswer
 

Merci beaucoup pour ces explications.
C'est difficile, car je n'ai jamais touché au C. J'avais fais un peu de Pascal en apprentissage, mais que les bases.
Au fait, nous ne verrons les structures qu'après les vacances(c'est à dire la semaine prochaine). Là on en est aux tableaux. Je vois qu'il me reste quelques bonnes années avant de devenir un "pro" de la programmation...

n°16617
BifaceMcLe​OD
The HighGlandeur
Posté le 02-03-2001 à 01:12:59  profilanswer
 

Ah, ces profs qui veulent faire apprendre les pointeurs avant les structure, j'y crois pas...  :sarcastic:  
 
Jacouille> Pas quelques années. Simplement, la programmation est une science expérimentale. C'est un peu comme conduire une voiture : on apprend vite les gestes techniques, mais savoir quoi (et comment) faire en toutes situations demande un peu plus d'expérience...  ;) :cool:

n°16636
Toxin
Carpe ★★ Vitam
Posté le 02-03-2001 à 10:07:05  profilanswer
 

Je loue ici bien bas la pédagogie employée par mes profs de DUT. On a trimé un mois entier avec des fonctions, des tableaux avec pleins de calculs à 'la con', mangé du for en tant que while, fait tout un tas de conneries, poussés à la faute par nos profs qui nous montraient qu'il y avait plus malin....
 
Au bout d'un mois on a abordé un mini projet dont la seule nouveauté était struct, malloc et '*'. Eh bien je peux vous dire que le mini projet est passé comme une lettre à la poste PERSONNE n'a galéré avec les pointeurs.
 
On était tellement en avance sur la date de clôture que la moitié des élèves ont bidouillé une interface graphique, généralement en utilisant des tableaux de pointeurs de fonctions pour les menus :)
 
Merci à vous chers professeurs (Mr Rogard, Ratard) de l'IUT de Vélizy j'ai passé les meilleures années de ma scolarité là bas (1994-1995).
 
Et même quand on a fait du C système UNIX, c'était le panard total.
 
Pensée spéciale pour Mr Rogard : "Allez Guingamp ! :)"
 
C'était la pensée émue du jour.

 

--Message édité par Toxin--


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Chaîne YT | Photos

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Débutant en C...

 

Sujets relatifs
Débutant[HTML débutant] Cmt enlever la bordure bleue d'un lien-image ?
debutant à Fireworks..Petit coup de pouce, j'suis débutant à Delphi ....
help pour un debutantVC++ debutant
Débutant Visual C++ avec MFC, qui peut répondre à quelques questions?Un bon pgrm d'edition/compilation pour débutant en C++?
débutant cherche solution? on l'a tous été n'est-ce-pas?Question de debutant en C ...
Plus de sujets relatifs à : Débutant en C...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR