Literales en C
En nuestro artículo Tipos de Datos en C vimos como pueden ser representados cada uno de los tipos de datos primitivos en C. Sin casi notarlo, utilizamos el concepto de "Literales", el cual no es más que la representación del valor de un dato entero, real, un caractér o una cadena de caracteres.
Literales enteros
En C, como en la mayoría de lenguajes de programación se permite representar los enteros en base 10 (decimal), base 8 (octal) y base 16 (hexadecimal). La expresión mediante la cual se puede representar cualquier entero es la siguiente.
{[+]|-}literal_entero[{L|U|UL|LL|ULL}]
En esta expresión, el signo +
es opcional cuando se quiere representar un número positivo, al igual que la letras después del entero. A continuación veremos algunos ejemplos:
1234 // int
1462U // unsigned int
9378L // long
235UL // unsigned long
835LL // long long
835ULL // unsigned long long
Para representar números en octal solo debemos agregar un cero al comienzo.
0326 // int (base 8)
Los números en base hexadecimal puede tener dígitos y letras de la A a la F precedidos por 0x
. Se aceptan mayúsculas y minúsculas.
0x100 // int (base 16)
-0x100 // entero negativo (-256)
Literales reales
Los literales reales están compuestos por una parte entera y una parte fraccionaria. Al igual q en la vida real, se permite la notación científica. La expresión mediante la cual se puede representar cualquier literal real es la siguiente.
{[+]|-}entero.fraccion[{e|E}{[+]|-}exponente]
En esta expresión el signo +
es opcional tanto para la parte entera como para el exponente. El exponente puede ser cualquier cantidad de dígitos al igual que par parte entera y fraccionaria. A continuación veremos algunos ejemplos:
2.34 // real positivo
.0054 // real positivo (se omite el cero)
-3.25 // real negativo
1.7e3 // real en notación científica (exp positivo)
1.7e-3 // real en notación científica (exp negativo)
A diferencia de los literales enteros, un literal real siempre tiene el tipo double
, a menos que se especifique el tipo con una letra F (mayúscula o minúscula).
2.058F // real tipo float
Adicional a esto, es posible escribir un literal real utilizando números en hexadecimal.
0x2C.ABp3 // p: exponente
Literales de un caractér
Los literales de un sólo caractér son siempre de tipo char
(ver tipo Char en C), es por esta razón que se utilizan comillas sencillas. Veamos algunos ejemplos.
' ' // espacio en blanco
'a' // letra a
'\n' // retorno de carro más avance de línea
'\x07' // pitido
Literales de cadenas de caracteres
Una cadena de caracteres es una secuencia de caracteres encerrados entre comillas dobles (ver strings en C). Las cadenas de caracteres se utilizan para asignar valores a variables de tipo array o para imprimir texto en pantalla. Veamos algunos ejemplos.
"Hola mundo"
"3.14356354" // cadena con caracteres numéricos
"" // cadena vacía
"Lenguaje \"C\"" // cadena con caracteres de escape
A continuación usamos un literal de cadena de caracteres para imprimir un texto por la salida estándar.
printf("Hola mundo \n");
Cuando una cadena de caracteres es demasiado larga se puede separa de la siguiente manera.
printf("Cadena de caraceters "
"separada");
O bien puede utilizarse el carácter de continuación \
.
printf("Cadena de caraceters \
separada");