Besoin daide, débutant
El roux
-
matafix Messages postés 45 Statut Membre -
matafix Messages postés 45 Statut Membre -
Bonjour a tous,
je suis un débutant en language c, j,aimerais bien atteindre un niveau "potable" en tant que programmeur du dimanche, mais plusieurs notions reste abstraites (ex : les pointeurs?!)
si quelqun pourrai m'indiquer un site avec un tutoriel détaillé, et plus important que tout, des exercices! a la tonne!
j'ai passé un gros moment sur le tutoreil de mateo21 sur lesiteduzero et j'ai progresser mais le manque d'idée de conception de programme de bas niveau manque...j'ai besoin d'une motivation la!
en gros, quelque trucs pour m'aider a progresser?
et j,ai aussi quelques bugs avec mes pointeurs, lorsqu'on envoie une valeur a une fonction, on initialise le pointeur dans le main ou dans la fonction en tant que tel?
et une fois envoyé, je me sert du meme pointeur pour changé la valeur a ladresse de la variable?
et une fois terminer, je renvoie le pointeur?
et poruquoi c'est pas clair merde...
exemple:
int main(....)
{
....
fonction(*a ou a);
}
int fonction(int *a ou a)
{
et la, a+5 ou *a+5
}
(c'était pour illustrer en gros...)
je suis un débutant en language c, j,aimerais bien atteindre un niveau "potable" en tant que programmeur du dimanche, mais plusieurs notions reste abstraites (ex : les pointeurs?!)
si quelqun pourrai m'indiquer un site avec un tutoriel détaillé, et plus important que tout, des exercices! a la tonne!
j'ai passé un gros moment sur le tutoreil de mateo21 sur lesiteduzero et j'ai progresser mais le manque d'idée de conception de programme de bas niveau manque...j'ai besoin d'une motivation la!
en gros, quelque trucs pour m'aider a progresser?
et j,ai aussi quelques bugs avec mes pointeurs, lorsqu'on envoie une valeur a une fonction, on initialise le pointeur dans le main ou dans la fonction en tant que tel?
et une fois envoyé, je me sert du meme pointeur pour changé la valeur a ladresse de la variable?
et une fois terminer, je renvoie le pointeur?
et poruquoi c'est pas clair merde...
exemple:
int main(....)
{
....
fonction(*a ou a);
}
int fonction(int *a ou a)
{
et la, a+5 ou *a+5
}
(c'était pour illustrer en gros...)
A voir également:
- Besoin daide, débutant
- Logiciel montage vidéo débutant - Guide
- Logiciel de programmation pour débutant - Guide
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Formation sap débutant pdf - Forum Logiciels
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions
8 réponses
Bonjour
lorsqu'on envoie une valeur a une fonction, on initialise le pointeur dans le main ou dans la fonction en tant que tel ?
Lorsqu'on envoie une valeur à une fonction, c'est une copie de cette valeur . Si tu la modifies dans la fonction, elle n'est pas modifiée dans le main :
Si tu veux que ta variable soit modifiée dans le main, il faut passer à la fonction l'adresse de la variable, c'est à dire un pointeur.
L'un des pièges dans cette histoire, c'est que si ta variable est un tableau, il ne faut pas utiliser le "&" pour obtenir son adresse. le C considère un pointeur comme l'adresse de début d'un tableau
Il y a encore beaucoup de choses, digère d'abord celles-là.
Pour ce qui est du tutorial, il y en a sûrement mais je n'ai pas de lien à te proposer
lorsqu'on envoie une valeur a une fonction, on initialise le pointeur dans le main ou dans la fonction en tant que tel ?
Lorsqu'on envoie une valeur à une fonction, c'est une copie de cette valeur . Si tu la modifies dans la fonction, elle n'est pas modifiée dans le main :
void main () {
int x;
x=3;
machin(x);
printf ("%d\n",x); // x vaut toujours 3
}
void machin (int x) {
// le x dans cette fonction est un entier, mais ce n'est qu'une copie de la variable du main.
// On pourrait aussi bien l'appeler y ou toto
x=6;
}
Si tu veux que ta variable soit modifiée dans le main, il faut passer à la fonction l'adresse de la variable, c'est à dire un pointeur.
void main () {
int x;
x=3;
machin2 (&x); // l'opérateur & te donne l'adresse de la variable.
printf ("%d\n",x); // x vaut 6 maintenant
}
void machin2 (int * x) {
// le x dans cette fonction est un pointeur.
*x=6; // x=6 serait interdit, x est un pointeur et non pas un int. *x représente "l'entier à l'adresse x"
}
L'un des pièges dans cette histoire, c'est que si ta variable est un tableau, il ne faut pas utiliser le "&" pour obtenir son adresse. le C considère un pointeur comme l'adresse de début d'un tableau
int tabl [5]; machin(tabl); // pas de & avant le tabl. tabl[0] vaut 6 maintenant
Il y a encore beaucoup de choses, digère d'abord celles-là.
Pour ce qui est du tutorial, il y en a sûrement mais je n'ai pas de lien à te proposer
Alors je crois que j'ai compris, en envoyant l'adresse a la fonction, le pointeur X (le nom du pointeur na pas vraiment dimportance) contient l'adresse
Mais la, le C se charge tout seul de faire les modifications a l'adresse que contient le pointeur!
en mettant *x, je lui dit va changer la valeur a ladresse que tu contient
et pour ma question d'initialiser le pointeur, si j'indique que la valeur recu pari cette fonction en est un, pas besoin de le déclarer!
c'est bien ca?
et merci pour ton aide le pere
Mais la, le C se charge tout seul de faire les modifications a l'adresse que contient le pointeur!
en mettant *x, je lui dit va changer la valeur a ladresse que tu contient
et pour ma question d'initialiser le pointeur, si j'indique que la valeur recu pari cette fonction en est un, pas besoin de le déclarer!
c'est bien ca?
et merci pour ton aide le pere
j'ai pas bien compris ta question...
j'ai cru que comprendre que tu voulais envoyer un pointeur a la fonction et qu'elle modifier ce pointeur
dans ce cas il faut utiliser un pointeur de pointeur dans la fonction
ex:
ds le main
et la fonction
voila en esperant que c'était bien ta question...;)
j'ai cru que comprendre que tu voulais envoyer un pointeur a la fonction et qu'elle modifier ce pointeur
dans ce cas il faut utiliser un pointeur de pointeur dans la fonction
ex:
ds le main
truc(&x)
et la fonction
void truc( int **x)
voila en esperant que c'était bien ta question...;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
olala...mal de tete, petit cerveau lol, explique le pointeur du pointeur mype svp
jenvoie ladresse de x, qui arrive dans la fonction sous forme de pointeur de pointeur?ou est lutilité?
et merci pour tous de vos reponses
jenvoie ladresse de x, qui arrive dans la fonction sous forme de pointeur de pointeur?ou est lutilité?
et merci pour tous de vos reponses
c'est simplement pour modifier l'adresse d'un pointeur et pas la valeur de l'adresse qu'on utilise le pointeur de pointeur
par exemple sa sert a faire pointer le pointeur sur une autre adresse
par exemple sa sert a faire pointer le pointeur sur une autre adresse
je te conseil de visiter franceioi
c'est un site qui explique le c d'une maniere simple et comprehensible mé maleuresemen il n'ya pas le cours des pointeurs
il existe aussi un bon site pour le c c https://www.ltam.lu/tutoriel-ansi-c/prg-c_c.htm
cherche et tu trouve
c'est un site qui explique le c d'une maniere simple et comprehensible mé maleuresemen il n'ya pas le cours des pointeurs
il existe aussi un bon site pour le c c https://www.ltam.lu/tutoriel-ansi-c/prg-c_c.htm
cherche et tu trouve