2011-06-17 17 views
15

He visto '\0' para utilizar como delimitador en archivos binarios mezclados (cadenas UTF8 + datos binarios). ¿Alguien podría explicar qué significa '\0' o señalar un buen lugar para estudiar?Delimitador cero de barra invertida ' 0'

Respuesta

18

Es el carácter nulo; más información en esta Wikipedia article.

6

\0 es la abreviatura de \000 que es un escape de carácter octal. En general, puede acortar cualquier escape octal que no esté seguido por un dígito octal. Esto se deriva de las secuencias de escape C originales (\n \r \t \f \v \b \000 donde este último es un valor de carácter en notación octal; ANSI agregó un poco, y \v es algo raro en estos días y muchos lenguajes más modernos no lo implementan).

11

El \0 representación de dos caracteres se utiliza en el código fuente C para representar el carácter NUL, que es el carácter (single) con valor ASCII 0.

El carácter NUL se utiliza en cadenas de caracteres de estilo C para indicar donde está el final de la cuerda Por ejemplo, la cadena "Hello" se codifica como los bytes hexadecimal:

48 65 6c 6c 6f 00 

En este caso, el compilador de C agrega automáticamente el byte 00 en el extremo de cualquier cadena entre comillas dobles. Si escribió la constante como "Hello\0", entonces el compilador de C generaría:

48 65 6c 6c 6f 00 00 
Cuestiones relacionadas