[c] quesion bête digne d'un bon debutant
Fermé
boitaRytm
Messages postés
14
Date d'inscription
dimanche 7 janvier 2007
Statut
Membre
Dernière intervention
22 octobre 2008
-
7 févr. 2007 à 21:02
boitarytm - 8 févr. 2007 à 20:01
boitarytm - 8 févr. 2007 à 20:01
A voir également:
- [c] quesion bête digne d'un bon debutant
- Logiciel de programmation pour débutant - Guide
- Pense bete - Guide
- Pense bête windows - Accueil - Applications & Logiciels
- Bête d'orage écran - Forum Matériel & Système
- La visite d'un site non digne de confiance a été empêchée ✓ - Forum Antivirus
4 réponses
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
342
7 févr. 2007 à 21:09
7 févr. 2007 à 21:09
Bonjour,
*P1 = *P2++ * *P3
Phases :
1) P1 <---- *P2 + *P3
2) P2 <----- P2 +1
les expressions du type i++ sont des expressions post-fixés. Les variables sont incrémentés, puis leur valeur initiale est renvoyé.
Le contraire aurait été ++i
Salut !
*P1 = *P2++ * *P3
Phases :
1) P1 <---- *P2 + *P3
2) P2 <----- P2 +1
les expressions du type i++ sont des expressions post-fixés. Les variables sont incrémentés, puis leur valeur initiale est renvoyé.
Le contraire aurait été ++i
Salut !
boitaRytm
Messages postés
14
Date d'inscription
dimanche 7 janvier 2007
Statut
Membre
Dernière intervention
22 octobre 2008
2
7 févr. 2007 à 21:43
7 févr. 2007 à 21:43
donc en prenant un exemple
*P2= 2; *P3= 3;
*P1 = *P2++ * *P3 ;
on aurait P1= 6 et P2 =3 c'est ca??ps: je viens de me rendre compte que j'aurais simplement du essayer directement ..
*P2= 2; *P3= 3;
*P1 = *P2++ * *P3 ;
on aurait P1= 6 et P2 =3 c'est ca??ps: je viens de me rendre compte que j'aurais simplement du essayer directement ..
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
342
7 févr. 2007 à 21:50
7 févr. 2007 à 21:50
on aurait P1= 6 et P2 =3 c'est ca??ps:
Plus exactement *P1 = 6
Par contre pour P2 non.
*P2++ est différent de (*P2)++
En fait tu augmentes de quatre octets (pour un int) la valeur dans P2. Du coup P2 peut pointer vers n'importe quoi si tu n'as pas prévu le coup (tableau....)
Je pense que tu voulais mettre
*P2= 2; *P3= 3;
*P1 = (*P2)++ * *P3 ;
je viens de me rendre compte que j'aurais simplement du essayer directement ..
Effectivement, c'est ce que j'ai fait d'ailleurs pour être sûre de pas te dire de bétises cette fois-ci :p
:)
Plus exactement *P1 = 6
Par contre pour P2 non.
*P2++ est différent de (*P2)++
En fait tu augmentes de quatre octets (pour un int) la valeur dans P2. Du coup P2 peut pointer vers n'importe quoi si tu n'as pas prévu le coup (tableau....)
Je pense que tu voulais mettre
*P2= 2; *P3= 3;
*P1 = (*P2)++ * *P3 ;
je viens de me rendre compte que j'aurais simplement du essayer directement ..
Effectivement, c'est ce que j'ai fait d'ailleurs pour être sûre de pas te dire de bétises cette fois-ci :p
:)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
7 févr. 2007 à 21:51
7 févr. 2007 à 21:51
Oups,
Error!
Error!
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
342
7 févr. 2007 à 21:59
7 févr. 2007 à 21:59
... ou comment tout mélanger !!!
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
7 févr. 2007 à 22:07
7 févr. 2007 à 22:07
c'est ma faute :-))
j'ai ajouté une étoile de plus ce qui m'a donné l'opérateur puissance :-))
# perl -e '$p2=2;$p3=3;$p1=$p2++*$p3;print "\$p1=$p1 \$p2=$p2 \$p3=$p3\n"' $p1=6 $p2=3 $p3=3
j'ai ajouté une étoile de plus ce qui m'a donné l'opérateur puissance :-))
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
342
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
7 févr. 2007 à 22:11
7 févr. 2007 à 22:11
Ok, la logique est respectée ! Mais vu que je n'y connais rien en perl je n'aurais rien vu :)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
7 févr. 2007 à 22:20
7 févr. 2007 à 22:20
On s'en fiche que ça soit Perl ou un autre langage,
tu vois bien que j'exécute les opération demandées
tu vois bien que j'exécute les opération demandées
lami20j@debian:~$ cat ekra.c #include<stdio.h> int main() { int p1=0,p2=2,p3=3; printf("Avant\np1=%d p2=%d p3=%d\n",p1,p2,p3); p1=p2++*p3; printf("Après\np1=%d p2=%d p3=%d\n",p1,p2,p3); return 0; } lami20j@debian:~$ ./ekra Avant p1=0 p2=2 p3=3 Après p1=6 p2=3 p3=3
boitarytm
>
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
8 févr. 2007 à 20:01
8 févr. 2007 à 20:01
merci bien les gens!!
7 févr. 2007 à 21:21
t'es sur là?
1) P1 <---- *P2 + *P3
ce n'est pas plutôt?
7 févr. 2007 à 21:24
Oui c'est bien ce que tu dis !
Merci ! et désolé pour la fausse explication !