[c] quesion bête digne d'un bon debutant
boitaRytm
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
boitarytm -
boitarytm -
salut a tous
c'est simple est ce que dans la commande :
*P1 = *P2++ * *P3
le contenu de P2 est incrémenté dans la memoire, ou simplement pendant le calcul.
merci
c'est simple est ce que dans la commande :
*P1 = *P2++ * *P3
le contenu de P2 est incrémenté dans la memoire, ou simplement pendant le calcul.
merci
A voir également:
- [c] quesion bête digne d'un bon debutant
- Un pense-bête - Guide
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Pense bête windows - Accueil - Applications & Logiciels
- Pense bete mac ✓ - Forum MacOS
4 réponses
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 !
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 ..
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
:)
... ou comment tout mélanger !!!
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
t'es sur là?
1) P1 <---- *P2 + *P3
ce n'est pas plutôt?
Oui c'est bien ce que tu dis !
Merci ! et désolé pour la fausse explication !