La valeur ASCII de '\0' est la même que la valeur ASCII de 0?
J'ai appris la valeur ASCII de '\0' est 0, et la valeur ASCII de 0 est 0x30, mais lorsque j'essaie d'imprimer leur valeur ASCII à l'aide de printf, j'obtiens le même résultat:
printf("\'\printf("\'\\0\' : %d\n", '\0');
printf("\'\\0\' in hex : %x\n", '\0');
printf("0 : %d\n", 0);
printf("0 in hex: %x\n", 0);
\' : %d\n", 'printf("\'\\0\' : %d\n", '\0');
printf("\'\\0\' in hex : %x\n", '\0');
printf("0 : %d\n", 0);
printf("0 in hex: %x\n", 0);
');
printf("\'\printf("\'\\0\' : %d\n", '\0');
printf("\'\\0\' in hex : %x\n", '\0');
printf("0 : %d\n", 0);
printf("0 in hex: %x\n", 0);
\' in hex : %x\n", 'printf("\'\\0\' : %d\n", '\0');
printf("\'\\0\' in hex : %x\n", '\0');
printf("0 : %d\n", 0);
printf("0 in hex: %x\n", 0);
');
printf("0 : %d\n", 0);
printf("0 in hex: %x\n", 0);
de sortie:
''\0' : 0
'\0' in hex : 0
0 : 0
0 in hex: 0
' : 0
''\0' : 0
'\0' in hex : 0
0 : 0
0 in hex: 0
' in hex : 0
0 : 0
0 in hex: 0
pourquoi?
C'est un
Oups, double-exploité le "L" par erreur. Vous êtes correct.
NULL
octet, qui est la même chose que zéro.'\0'
est en fait NUL
. NULL
est un pointeur. (Pas qu'il existe une différence dans C, mais, conceptuellement, elles sont différentes)Oups, double-exploité le "L" par erreur. Vous êtes correct.
OriginalL'auteur Victor S | 2012-07-02
Vous devez vous connecter pour publier un commentaire.
Le caractère ASCII
'0'
est différent du nombre0
. De l'impression à l'entier0
dans votre deuxième paire deprintf
s au lieu de'0'
.Essayez ceci:
Aussi, vous n'avez pas besoin d'échapper à
'
à l'intérieur de chaînes. C'est,"'"
est très bien et que vous n'avez pas besoin d'écrire"\'"
OriginalL'auteur Shahbaz
Vous confondez 0, '\0' et de '0'.
Les deux premiers sont la même chose; ils représentent simplement une
int
avec la valeur 0.'0', cependant, est différent, et représente un
int
avec la valeur de " 0 " caractère, qui est48
.OriginalL'auteur houbysoft
Oui, le caractère littéral
'\0'
a de la valeur0
et ceci est indépendant de la nature.OriginalL'auteur ouah
Toutes ces réponses semblent manquer le point de
\0
...Essayez ceci:
C'est la raison pour
\0
Ainsi, vous pouvez définir une valeur NULL string ...
est tout à fait différent de
le dernier étant utile dans certains cas.
"Test"
est une chaîne se terminant par null.Vous avez raison - la sénilité doit être mise en ... #define NAME_DESC "Chien\0A quatre pattes ami" aurait été un meilleur exemple, en utilisant le '\0' à 'cacher' la description de fonctions standard et catenate une deuxième chaîne (la description). J'ai simplement pour but de montrer qu'il a une utilité.
OriginalL'auteur Dr Jeff
La valeur ASCII de '\0' est en effet à 0. Mais '\0' est différent de " 0 " (avis de la barre oblique, qui est l'évasion symbole).
OriginalL'auteur sashoalm
D'impression comme ça, vous aurez 48.
OriginalL'auteur Prasad G
Votre dernière ligne devrait être
OriginalL'auteur Wernsey