Pointeurs en langages c
Résolu
aqwxc
-
alicia85 Messages postés 68 Date d'inscription Statut Membre Dernière intervention -
alicia85 Messages postés 68 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
On m' a dit que en langage c *(p++) revient au meme que *p
pourtant *(p++) rend la valeur pointe par le pointeur (p++)
alors que *p renvoye la valeur pointe par le pointeur p
Merci de m'aider..
On m' a dit que en langage c *(p++) revient au meme que *p
pourtant *(p++) rend la valeur pointe par le pointeur (p++)
alors que *p renvoye la valeur pointe par le pointeur p
Merci de m'aider..
A voir également:
- Pointeurs en langages c
- Que veut dire le rectangle en langage sms ✓ - Forum Samsung
- Que veut dire xd en langage ado ✓ - Forum Mail
- Puissance en langage c - Forum C
- Exposant avec C++!!?? - Forum C++
- XD ✓ - Forum Réseaux sociaux
3 réponses
Salut,
a ben non, clairement pas ... Le mec qui t'as dis ça ne doit pas avoir un compilateur à jour dans la tête ... lol
Tu as tout a fais raison, *p++ c'est pas la même chose que *p (t'es pas obligé de mettres les () ).
@Bientôt
a ben non, clairement pas ... Le mec qui t'as dis ça ne doit pas avoir un compilateur à jour dans la tête ... lol
Tu as tout a fais raison, *p++ c'est pas la même chose que *p (t'es pas obligé de mettres les () ).
@Bientôt
alicia85
Messages postés
68
Date d'inscription
Statut
Membre
Dernière intervention
bonjr t es la j ai un pb en langage c stp merci
Salut
je serai plus nuancé. Je dirai oui et non.
En C, *(p++) est équivalent à *p en ce qui concerne le résultat de la ligne. En revanche, après la ligne p sera incrémenter de 1. En revanche *(++p) est complètement différent de *p.
Pour s'en convaincre, voici un petit programme :
Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
je serai plus nuancé. Je dirai oui et non.
En C, *(p++) est équivalent à *p en ce qui concerne le résultat de la ligne. En revanche, après la ligne p sera incrémenter de 1. En revanche *(++p) est complètement différent de *p.
Pour s'en convaincre, voici un petit programme :
#include <stdio.h> int main() { char *c=(char*)malloc(2),*D; c[0]='a';c[1]='b'; D=c;// on fait pointé D sur le premier caractère de c printf("%c %c\n",*(D++),*D); D=c; // réinitialisation de D printf("%c %c\n",*(++D),*D); return 0; }la sortie sera alors :
a a b b--
Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
stp voici une parti de mon code je ne sais ce qui se passe
char*sh,*type,*c,c1;
int i,j,k,l,v,n;
printf("\t u:pour les entiers non signés\n\t d:pour les entiers decimaux signe a cplment a 2 \n\t b:pour les entiers decimaux signes cplmen a 1\n\t f:pour les flottants\n\t l:pour les flottants avec exposant biaise\n\t s:pour les chaines de caractere\n\t c pour les caracteres\n\n");
printf("\n ...pour le decodage taper 1....pour quitter taper 2\n");
scanf("%d",&n);
if(n==1){
type=(char*)malloc(sizeof(char));
c=(char*)malloc(sizeof(char));
sh=(char*)malloc(sizeof(char));
printf("\t ENTRER VOTRE TYPE:");
do
scanf("%s",&type);
while(strlen(type)==2);
printf("\nENTRER VOTRE CHAINE ");
do{
scanf("%s",&sh); k++;
}
while ((i<strlen(type))&&((sh[k]==0)||(sh[k]==1)));
//printf("la chaine est %s",sh);
if(type=="u"){
l=sizeof(unsigned int)*8;
v=verif (sh,l);
printf("alors la %d",v);
if(v==1){
i=decode_int(sh);
printf("le code est %d\n:",i);
}
printf("erreur dans le code");
}
else
if(type=="b"){
l=sizeof(int)*8;
v=verif (sh,l);
if(v==1){
c=decode_cpl1(sh);
printf("le code est %s\n:",c);
}
printf("erreur dans le code");
}
else
if(type="d"){
l=sizeof(unsigned int)*8;
v=verif (sh,l);
printf("je suis %d",v);
if(v==1){
c=decode_cpl2(sh);
printf("le code est %s\n:",c);
}
printf("erreur dans le code");
}
else
if (type=="c"){
l=sizeof(char)*8;
v=verif (sh,l);
if(v==1){
c1=decode_char(sh);
printf("le code est %c\n:",c1);
}
printf("erreur dans le code");
}
else
if (type=="s")
{v=verif_char(sh);
if(v==1){
c=decode_chaine(sh);
printf("le code est %s\n:",c);
}
printf("erreur dans le code");
}
return 1;
}
exit(0);
getch();
getch();
}
char*sh,*type,*c,c1;
int i,j,k,l,v,n;
printf("\t u:pour les entiers non signés\n\t d:pour les entiers decimaux signe a cplment a 2 \n\t b:pour les entiers decimaux signes cplmen a 1\n\t f:pour les flottants\n\t l:pour les flottants avec exposant biaise\n\t s:pour les chaines de caractere\n\t c pour les caracteres\n\n");
printf("\n ...pour le decodage taper 1....pour quitter taper 2\n");
scanf("%d",&n);
if(n==1){
type=(char*)malloc(sizeof(char));
c=(char*)malloc(sizeof(char));
sh=(char*)malloc(sizeof(char));
printf("\t ENTRER VOTRE TYPE:");
do
scanf("%s",&type);
while(strlen(type)==2);
printf("\nENTRER VOTRE CHAINE ");
do{
scanf("%s",&sh); k++;
}
while ((i<strlen(type))&&((sh[k]==0)||(sh[k]==1)));
//printf("la chaine est %s",sh);
if(type=="u"){
l=sizeof(unsigned int)*8;
v=verif (sh,l);
printf("alors la %d",v);
if(v==1){
i=decode_int(sh);
printf("le code est %d\n:",i);
}
printf("erreur dans le code");
}
else
if(type=="b"){
l=sizeof(int)*8;
v=verif (sh,l);
if(v==1){
c=decode_cpl1(sh);
printf("le code est %s\n:",c);
}
printf("erreur dans le code");
}
else
if(type="d"){
l=sizeof(unsigned int)*8;
v=verif (sh,l);
printf("je suis %d",v);
if(v==1){
c=decode_cpl2(sh);
printf("le code est %s\n:",c);
}
printf("erreur dans le code");
}
else
if (type=="c"){
l=sizeof(char)*8;
v=verif (sh,l);
if(v==1){
c1=decode_char(sh);
printf("le code est %c\n:",c1);
}
printf("erreur dans le code");
}
else
if (type=="s")
{v=verif_char(sh);
if(v==1){
c=decode_chaine(sh);
printf("le code est %s\n:",c);
}
printf("erreur dans le code");
}
return 1;
}
exit(0);
getch();
getch();
}