Merci drx pour ta promptitude, j'ai fait des tests et effectivement la valeur de la variable ''nombre'' reste toujours 5.
Donc si je comprend bien :
1- tu as crée le pointeur ''*pointeur'' et les variables ''nombre'' et ''copieDeNombre'' sur la même car ils sont de même type
2- avec les pointeurs on envoie que l'adresse d'une variable a une fonction donc tu as envoyé l'adresse de ''copieDeNombre'', cela permet de modifier directement la valeur de ''copieDeNombre'' tout en conservant la valeur de la variable ''nombre''
3- dans ton code au niveau du ''printf'', a la ligne 10, est ce possible de mettre ''copieDeNombre'' au lieu de ''*pointeur'' comme ceci?
void triplePointeur(int *pointeurSurNombre);
int main(int argc, char *argv[])
{
int nombre = 5,
copieDeNombre = nombre,
*pointeur = &copieDeNombre;
triplePointeur(pointeur);
printf("%d\n", copieDeNombre);
//nombre vaut toujours 5...
return 0;
}
void triplePointeur(int *pointeurSurNombre)
{
*pointeurSurNombre *= 3;
}
Sinon c'est quoi la différence de mettre ''copieDeNombre'' ou ''*pointeur''?
1- tu as crée le pointeur ''*pointeur'' et les variables ''nombre'' et ''copieDeNombre'' sur la même car ils sont de même type
Ta phrase est un peu ambigu ! 'sur la même' je dirais sur la même quoi ? Si c'est les virgules qui t'intrigues, la déclaration des variable aurait pu s'écrire :
int nombre = 5;
int copieDeNombre = nombre;
int *pointeur = &copieDeNombre;
C'est exactement la même chose.
2) Oui. A savoir qu'on pourait directement envoyer l'adresse de la variable sans créer le pointeur :
#include <stdio.h>
void triplePointeur(int *pointeurSurNombre);
int main(void)
{
int nombre = 5;
int copieDeNombre = nombre;
triplePointeur(&copieDeNombre);
printf("%d\n", copieDeNombre);
printf("%d\n", nombre); //nombre vaut toujours 5...
return 0;
}
void triplePointeur(int *pointeurSurNombre)
{
*pointeurSurNombre *= 3;
}
juniorpaix12 a écrit:
3- dans ton code au niveau du ''printf'', a la ligne 10, est ce possible de mettre ''copieDeNombre'' au lieu de ''*pointeur'' comme ceci?
Oui, tu as essayé et ça a marché. (Je l'ai fait dans le code si dessus).
Je ne sais pas si j'ai bien compris ta question, on peut faire: printf("%d %d\n", *pointeur, copieDeNombre);
Le Tout est souvent plus grand que la somme de ses parties.
Valeur initiale d'une variable apres modification
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Bonhomme !! | Jeu de plateforme : Prototype.
Le Tout est souvent plus grand que la somme de ses parties.