No dudes en divulgar nuestro espacio y códigos en tus redes sociales, ayúdanos a hacer crecer esta comunidad.
Solución:
En C y en C++, las comillas simples identifican un solo carácter, mientras que las comillas dobles crean un string literal. 'a'
es un literal de un solo carácter, mientras que "a"
es un string literal que contiene un 'a'
y un null terminador (que es un 2 char array).
En C++ el tipo de un carácter literal es char
pero tenga en cuenta que en C, el tipo de carácter literal es int
eso es sizeof 'a'
es 4 en una arquitectura donde los enteros son de 32 bits (y CHAR_BIT es 8), mientras que sizeof(char)
es 1 en todas partes.
Algunos compiladores también implementan una extensión que permite constantes de varios caracteres. El estándar C99 dice:
6.4.4.4p10: “El valor de una constante de carácter entero que contiene más de un carácter (por ejemplo, ‘ab’), o que contiene un carácter o una secuencia de escape que no corresponde a un carácter de ejecución de un solo byte, está definido por la implementación. “
Esto podría verse así, por ejemplo:
const uint32_t png_ihdr = 'IHDR';
La constante resultante (en GCC, que implementa esto) tiene el valor que obtiene al tomar cada carácter y desplazarlo hacia arriba, de modo que ‘I’ termina en los bits más significativos del valor de 32 bits. Obviamente, no debe confiar en esto si está escribiendo código independiente de la plataforma.
Las comillas simples son caracteres (char
), las comillas dobles son nullcadenas terminadas (char *
).
char c = 'x';
char *s = "Hello World";
Reseñas y valoraciones del post
Acuérdate de que tienes el privilegio comentar si te fue de ayuda.