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

 


Dernière réponse
Sujet : quelqu'un peut me dire quelle est l'utilité des pointeur en langage C
gilou

airseb a écrit a écrit :

 
 
donc ça permet de modifier n'importe quelle variable passée en paramètre ?  




Et de ne passer a une fonction comme argument qu'un pointeur, de taille faible, au lieu eventuellement d'une structure de taille importante.
A+,


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
gilou

airseb a écrit a écrit :

 
 
donc ça permet de modifier n'importe quelle variable passée en paramètre ?  




Et de ne passer a une fonction comme argument qu'un pointeur, de taille faible, au lieu eventuellement d'une structure de taille importante.
A+,

HelloWorld

Citation :

en tout cas, on peut remarquer ici une chose : quand un newbie demande quel langage apprendre, tout le monde lui déconseille l'assembleur...


 
Si si, on s'était déjà engueulé la dessus ... (vous avez remarquer comment c'est facile de créer un troll / flame : "Quel langage pour débuter ?" )
y'en avait un qui était farouchement pour car il considérait que bien comprendre ce qui était fait était important, et l'autre non car du moment que ça marchait, pourquoi perdre du temps à étudier pourqui ça marche.
 
Moi je ne suis pas pour débuter avec l'assembleur, mais je suis pour l'apprendre dès que les bases en prog sont acquises (pourquoi tout compliquer dès le début ?).
L'assembleur ça sert (presque) à rien de le savoir ... mais c'est très instructif à apprendre.

Harkonnen legreg> clair que le bouquin de K & R pour l'apprentissage du C est le meilleur, même s'il est assez ancien, y'en a pas de mieux
 
en tout cas, on peut remarquer ici une chose : quand un newbie demande quel langage apprendre, tout le monde lui déconseille l'assembleur...
moi, j'ai rééllement commencé à coder par l'assembleur sur Amiga, (je ne compte pas mes années de préhistoire ou je faisais mumuse avec le basic du CPC...), et il faut bien reconnaitre que quand je suis passé au C, les notions de pointeur ou de pile me paraissaient totalement naturelles, alors que les autres galéraient au possible...
 
je ne dis pas qu'il faut commencer en apprenant l'assembleur, mais il faut bien reconnaitre que sa maitrise permet de comprendre aisément tous les points obscurs des autres langages.
 
ASM powaaaaaaaaa :d
ninja sky :hap:
LeGreg un pointeur = une adresse memoire
toute variable existe en memoire et on la retrouve grace a un pointeur (constant ou non).  
C'est du bas niveau, donc certains langages cachent la notion de pointeur.
Un pointeur peut lui-meme etre une variable et avoir une adresse en memoire (pointeur vers un pointeur).
 
la pile: une zone de la memoire ou l'on empile des elements
(variables, pointeurs) en "dernier arrivé- premier parti"
Comme sur une pile d'assiette ou tu prends toujours les assiettes du dessus. C'est utilisé tout le temps et partout en informatique.
 
LEGREG
LeGreg

airseb a écrit a écrit :

ou C++ ?  




 
Au risque de repeter ce qu'ont dit les autres, lis un livre !
le langage C par Kernighan et Ritchie
 
LEGREG

Harkonnen

Citation :


mais c quoi la pile ?


 

Citation :


c'est le stack (en anglais dans le texte).


 [:xp1700]

HelloWorld La petite analogie que j'aime bien : :)
le pointeur c'est comme l'adresse d'un site internet. Ca designe aussi bien une petite image qu'un énorme site tout entier.
Un pointeur c'est pareil : ca pointe sur n'importe quelle autre variable : un simple entier ou alors un énorme tableau / structure / classe ... ou autre pointeur !
Et comme une URL, la taille d'un pointeur n'a rien à voir avec la taille de l'objet pointé (sa taille = taille d'un adresse = 32 bits souvent).
La pile c'est ce qui sert à faire passer les paramètres quand on appelle une fonction.
Si l'objet passé en paramètre est trop gros, ca prend du temps à empiler, et donc ca va lus vite si t'empiles juste un pointeur.
Un pointeur c'est aussi un moyen pour modifier une variable passée en paramètre.
Y'a bcp d'autres applications ... trouve un livre.
gizmo c'est le stack (en anglais dans le texte).
airseb donc ok  :jap:  
 
mais c quoi la pile ?
chrisbk

airseb a écrit a écrit :

 
 
donc ça permet de modifier n'importe quelle variable passée en paramètre ?  




 
yep

airseb

Verdoux a écrit a écrit :

Les données sont stockées en mémoire, le code aussi d'ailleurs.
 
Un pointeur permet de désigner une zone de la mémoire (pointeur sur un int, sur une structure, sur une fonction) et de manipuler l'objet pointé.
 
Le cas le plus commun en C:
 
int b = 2;
 
void f(int a) { a = 1;}
void g(int *pa) {*pa = 1;}
 
après f(b), b vaut toujours 2 (parce que le contenu de b a été copié sur la pile puis passé à f mais b n'existe pas pour f)
 
après g(&b), b vaut 1 (g agit directement sur l'adresse du contenu de b)  
 
 




 
donc ça permet de modifier n'importe quelle variable passée en paramètre ?

chrisbk

Willyzekid a écrit a écrit :

 
 
J'insiste!!! J'insiste: n'importe quel language ne sert plus à rien!!
Fais une pile sans pointeur en ADA?
Toutes les variables en java sont des pointeurs (cachés certes)  




 
oh, je dis pas, mais je connais quasiement que C/C++, alors bon

verdoux Les données sont stockées en mémoire, le code aussi d'ailleurs.
 
Un pointeur permet de désigner une zone de la mémoire (pointeur sur un int, sur une structure, sur une fonction) et de manipuler l'objet pointé.
 
Le cas le plus commun en C:
 
int b = 2;
 
void f(int a) { a = 1;}
void g(int *pa) {*pa = 1;}
 
après f(b), b vaut toujours 2 (parce que le contenu de b a été copié sur la pile puis passé à f mais b n'existe pas pour f)
 
après g(&b), b vaut 1 (g agit directement sur l'adresse du contenu de b)

 

[jfdsdjhfuetppo]--Message édité par Verdoux le 25-05-2002 à 23:12:53--[/jfdsdjhfuetppo]

Willyzekid

chrisbk a écrit a écrit :

 
 
disons que sans ca le C/C++ sert pu trop a grand chose  




 
J'insiste!!! J'insiste: n'importe quel language ne sert plus à rien!!
Fais une pile sans pointeur en ADA?
Toutes les variables en java sont des pointeurs (cachés certes)

chrisbk

cassidy a écrit a écrit :

etant autodidacte, au debut de mon apprentisage du C je me suis pose exactement la meme question :)
Mais une foa que tu maitrises le syteme des pointeurs, tu peux plus t'en passer :)  




 
disons que sans ca le C/C++ sert pu trop a grand chose

Je@nb parce que c un histoire de pile ou ché pas koi lol
cassidy etant autodidacte, au debut de mon apprentisage du C je me suis pose exactement la meme question :)
Mais une foa que tu maitrises le syteme des pointeurs, tu peux plus t'en passer :)
airseb

gee a écrit a écrit :

un pointeur :  
permet de pointer sur une adresse
dans le cas d une allocation dynamique
qd tu appele un tableau
tu n appele pas dirctement le tableau mais le pointeur d abord  




 
mais pourquoi on appelle pas directement le tableau ?

gee un pointeur :  
permet de pointer sur une adresse
dans le cas d une allocation dynamique
qd tu appele un tableau
tu n appele pas dirctement le tableau mais le pointeur d abord
Willyzekid

chrisbk a écrit a écrit :

Va falloir t'acheter un solide bouquin sur le sujet (Le C en 21 jours me parait impec, il m'a bpc aidé)  




 
Plutôt sur la programmation en général (et sur les variables dynamiques que ce soit en C, C++, Ada, etc.)

chrisbk Va falloir t'acheter un solide bouquin sur le sujet (Le C en 21 jours me parait impec, il m'a bpc aidé)
airseb ou C++ ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)