Pointeurs
Résolu/Fermé
celina-boni
Messages postés
30
Date d'inscription
samedi 23 août 2014
Statut
Membre
Dernière intervention
8 décembre 2015
-
Modifié par Whismeril le 17/01/2015 à 08:09
celina-boni Messages postés 30 Date d'inscription samedi 23 août 2014 Statut Membre Dernière intervention 8 décembre 2015 - 19 janv. 2015 à 20:41
celina-boni Messages postés 30 Date d'inscription samedi 23 août 2014 Statut Membre Dernière intervention 8 décembre 2015 - 19 janv. 2015 à 20:41
3 réponses
Whismeril
Messages postés
18279
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mars 2023
888
17 janv. 2015 à 08:10
17 janv. 2015 à 08:10
Bonjour c'est par ce mot que devrais commencer ton message.....
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
17 janv. 2015 à 22:04
17 janv. 2015 à 22:04
Bonjour,
Mes remarques sur le code :
Aère le code. Par exemple, les accolades sont mal placés, du coup ça perd en lisibilité.
main()
Le bon prototype est : int main(void);
Et il ne faut pas oublier : return 0; juste avant l'accolade fermante finale.
unsigned char* p=(unsigned char *)&x;
Le cast est superflu.
Sinon pour la question, ton programme affiche en base 16, car c'est ce qui lui est demandé : printf("%x", ...);
printf("%x %x %x %x\n",*(p+3),*(p+2),*(p+1),*p);}
printf("%x") de *(p+3) ou tout simplement p[3] permettra d'afficher la valeur en hexadécimal du 3ème byte de la variable x.
Donc l'ensemble permet d'afficher le nombre hexa de x. Attention néanmoins à l'endianness.
Cdlt,
Mes remarques sur le code :
Aère le code. Par exemple, les accolades sont mal placés, du coup ça perd en lisibilité.
main()
Le bon prototype est : int main(void);
Et il ne faut pas oublier : return 0; juste avant l'accolade fermante finale.
unsigned char* p=(unsigned char *)&x;
Le cast est superflu.
Sinon pour la question, ton programme affiche en base 16, car c'est ce qui lui est demandé : printf("%x", ...);
printf("%x %x %x %x\n",*(p+3),*(p+2),*(p+1),*p);}
printf("%x") de *(p+3) ou tout simplement p[3] permettra d'afficher la valeur en hexadécimal du 3ème byte de la variable x.
Donc l'ensemble permet d'afficher le nombre hexa de x. Attention néanmoins à l'endianness.
Cdlt,
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
48
18 janv. 2015 à 18:07
18 janv. 2015 à 18:07
Bonsoir , et pourquoi pas ?
à bientôt
#include <stdio.h>
#include <stdlib.h>
int main( void ){
static int f = 0;
unsigned int i = 0;
for( i = 0; i < 3; i++ ){
printf("entrer un nombre\t:");
if( scanf( "%d", &f) ){
printf("%3d| = %x\n", i, f );
}
}
return( EXIT_SUCCESS );
}
à bientôt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
18 janv. 2015 à 18:38
18 janv. 2015 à 18:38
et pourquoi pas ?
Car celina-boni nous pose une question qui a pour but de comprendre l'usage des pointeurs...
Car celina-boni nous pose une question qui a pour but de comprendre l'usage des pointeurs...
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
48
18 janv. 2015 à 19:02
18 janv. 2015 à 19:02
no comment +1
celina-boni
Messages postés
30
Date d'inscription
samedi 23 août 2014
Statut
Membre
Dernière intervention
8 décembre 2015
1
19 janv. 2015 à 20:41
19 janv. 2015 à 20:41
bonsoir !
je vous remerçie vraiment pour vos réponse et vos remarque sur le programme et votre réponse msr fiddy est bien satisfait :) je vous remerçie encore une fois :)
à bientot ^^
je vous remerçie vraiment pour vos réponse et vos remarque sur le programme et votre réponse msr fiddy est bien satisfait :) je vous remerçie encore une fois :)
à bientot ^^
17 janv. 2015 à 13:15
désolé encore une fois :)