resueltos - funciones de cadenas de caracteres en c++
Terminación de cadena-char c=0 vs char c=''/ 0'' (3)
Al terminar una cadena, me parece que lógicamente char c=0
es equivalente a char c=''/0''
, ya que el byte "nulo" (ASCII 0) es 0
, pero por lo general las personas tienden a hacer ''/0''
lugar . ¿Esto es puramente por preferencia o debería ser una mejor "práctica"?
¿Cuál es la opción preferida?
EDITAR: K & R dice : "La constante de caracteres ''/0''
representa el carácter con valor cero, el carácter nulo. ''/0''
menudo se escribe en lugar de 0
para enfatizar la naturaleza del carácter de alguna expresión, pero el valor numérico es solo 0
.
La opción preferida es aquella que puede dar a las personas que leen su código la capacidad de comprender cómo utiliza su variable, como un número o como un personaje. La mejor práctica es usar 0 cuando te refieres a la variable como un número y a usar ''/ 0'' cuando te refieres a que tu variable es un personaje.
http://en.wikipedia.org/wiki/Ascii#ASCII_control_code_chart
Binary Oct Dec Hex Abbr Unicode Control char C Escape code Name
0000000 000 0 00 NUL ␀ ^@ /0 Null character
No hay diferencia, pero la más idiomática es ''/0''
.
Tal vez poniéndolo como char c = 0;
podría significar que tiene la intención de usarlo como un número (por ejemplo, un contador), aunque personalmente no he encontrado un código como ese. ''/0''
no es ambiguo.
''/0''
es solo un caracter ASCII Lo mismo que ''A''
, o ''0''
o ''/n''
Si escribe char c = ''/0
'', es lo mismo que char c = 0;
Si escribe char c = ''A''
, es lo mismo que char c = 65
Es solo una representación de personajes y es una buena práctica escribirlo, cuando realmente quieres decir el byte NULO de la cuerda. Como char
está en C un byte (tipo integral), no tiene ningún significado especial.