c++ - simples - literales de caracteres en c
Comillas simples vs. comillas dobles en C o C++ (12)
¿Cuándo debo usar comillas simples y comillas dobles en la programación C o C ++?
-
single quote
es para elcharacter
; -
double quote
es para lastring
.
Algunos compiladores también implementan una extensión que permite constantes de múltiples caracteres. El estándar C99 dice:
6.4.4.4p10: "El valor de una constante de caracteres enteros que contiene más de un carácter (por ejemplo, ''ab'') o que contiene un carácter o secuencia de escape que no se correlaciona con 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 obtienes tomando cada carácter y cambiándolo, 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 un código independiente de la plataforma.
En C y en C ++, las comillas simples identifican un solo carácter, mientras que las comillas dobles crean un literal de cadena. ''a'' es un literal de un solo carácter, mientras que "a" es un literal de cadena que contiene una ''a'' y un terminador nulo (que es una matriz de 2 caracteres).
En C ++, el tipo de un carácter literal es char
, pero tenga en cuenta que en C, el tipo de un carácter literal es int
, es decir, sizeof ''a''
es 4 en una arquitectura donde los valores son 32bit (y CHAR_BIT es 8), mientras que sizeof(char)
es 1 en todas partes.
En C, las comillas simples, como ''a'', indican las constantes del carácter, mientras que "a" es una matriz de caracteres, siempre terminada con el carácter 0
Estaba hurgando cosas como: int cc = ''cc''; Sucede que básicamente se trata de una copia byte a un entero. Por lo tanto, la forma de verlo es que ''cc'' que es básicamente 2 c''s se copia a 2 bytes inferiores del entero cc. Si estás buscando trivialidades, entonces
printf ("% d% d", "c", "cc"); daría:
99 25443
eso es porque 25443 = 99 + 256 * 99
Entonces ''cc'' es una constante de varios caracteres y no una cadena.
Aclamaciones
La comilla simple se usa para el carácter, mientras que la comilla doble se usa para la cadena.
Por ejemplo..
printf("%c /n",''a'');
printf("%s","Hello World");
Salida
un hola mundo
Si los utilizó en el caso viceversa y utilizó comillas simples para cadenas y comillas dobles para caracteres. Aquí, este será el resultado;
printf("%c /n","a");
printf("%s",''Hello World'');
salida:
para la primera línea. Tendrás valor de basura o inesperado. O puede que tengas resultados como este ...
mientras que para la segunda declaración. No verás nada. Una cosa más. Si tienes más declaración después de esto. Ellos tampoco te darán ningún resultado.
Nota: El lenguaje PHP le da flexibilidad para usar citas simples y dobles fácilmente.
Las comillas dobles son para literales de cadena, por ejemplo:
char str[] = "Hello world";
Las comillas simples son para literales de un solo carácter, por ejemplo:
char c = ''x'';
EDITAR Como David declaró en otra respuesta, el tipo de un carácter literal es int
.
Las comillas simples denotan un carácter, el doble denotan un texto.
En Java, también es lo mismo.
Las comillas simples son caracteres ( char
), las comillas dobles son cadenas terminadas en nulo ( char *
).
char c = ''x'';
char *s = "Hello World";
Las comillas simples son para un solo personaje. Las comillas dobles son para una cadena (matriz de caracteres). Puede usar comillas simples para crear una cadena de caracteres de uno en uno, si lo desea.
char myChar = ''A'';
char myString[] = "Hello Mum";
char myOtherString[] = { ''H'',''e'',''l'',''l'',''o'',''/0'' };
Use una comilla simple con un solo carácter como:
char ch = ''a'';
aquí ''a''
es una constante char y es igual al valor ASCII
de char a.
Use comillas dobles con cadenas como:
char str[] = "foo";
aquí "foo"
es una cadena literal.
Está bien usar "a"
pero no está bien usar '' foo''
-
''x''
es un número entero, que representa el valor numérico de la letra x en el juego de caracteres de la máquina -
"x"
es una matriz de caracteres, dos caracteres de longitud, que consta de''x''
seguido de''/0''