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
Utilisateur anonyme
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 841
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
49
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 841
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
49
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 :)