Diario de un programador día 67 (2da. clase)
Variables en C.
Al igual que en java, en C las variables deben ser
declaradas y se hacen de la misma forma que en java (más info mirar acá).,
excepto para declarar cadenas de caracteres, ya que en C no existe el tipo
String. Ya hablaremos de eso más tarde. Entonces, siguiendo la misma línea que
se aprendió en java, declararemos una variable como entero y la mostraremos en
pantalla. Luego se explicará la sintaxis.
EL siguiente programa simplemente mostrará una
variable en pantalla.
#include<stdio.h>
int main(void)
{
int num = 5;
printf("%d", num);
return 0;
}
Como dije, este programa lo que hace es mostrar un
valor, en este caso el valor de la variable “num” en pantalla. Como se puede
apreciar, la forma de declarar una variable entera es similar a como lo hicimos
en java. En la línea siguiente está la función printf(“%d”, num); Para poder
mostrar el contenido de una variable en una función printf, se debe utilizar lo
que se conoce como modificador de formato. Por ejemplo, para poder mostrar el
contenido de una variable entera, se debe utilizar el modificador de formato
%d, como alternativa también se puede utilizar %i, ambos son válidos para
mostrar valores enteros. El modificador
de formato, será reemplazado por la variable ubicada después de la coma. Un
nuevo ejemplo de esto sería lo siguiente
#include<stdio.h>
int main(void)
{
int num = 5;
printf("El valor de la variable es %d", num);
return
0;
}
Esto mostrara
como resultado “El valor de la variable es 5”.
Se pueden agregar
tantos modificadores como queramos.
#include<stdio.h>
int main(void)
{
int num = 5;
int num2 = 10;
printf("El valor de la variable num es %d y el num2 es %d",
num, num2);
return 0;
}
Esto
muestra “El valor de la variable num es 5 y el num2 es 10"
Como se puede apreciar, el orden en que aparecen
las variables, dependen del orden en que se agreguen después de la coma.
Ya que tenemos dos variables, podemos operar con
ellas, ya sea realizando la operación en el lugar donde se encuentran...
printf("La suma de ambas variables es %d", num + num2);
O, crear una variable donde almacenar dicho resultado
int num3 = num + num2;
printf("La suma de ambas variables es %d", num3);
Los modificadores de formato comúnmente utilizados son:
%d, %i = Para números enteros
%f = Para decimales
%c = Para caracteres
%s = Para cadena de caracteres
Del mismo modo, los tipo de datos básico comúnmente utilizados son
int = enteros
float = decimal
double = decimal de doble precisión
char = carácter
char variable[] = cadena de caracteres
Las variables con cadenas son un caso especial. Veamos algunos ejemplos.
#include<stdio.h>
int main(void)
{
char
letra = 'a';
printf("%c", letra);
return 0;
}
Lo que hace este programa es mostrar por pantalla
la letra a. El tipo de dato char,
solamente puede almacenar un
carácter, en este caso la letra a.
Como se puede apreciar, el contenido de la variable va encerrado en comillas
simples y su modificador de formato es %c
Para poder mostrar una palabra, lo que se conoce
como cadena de caracteres, se debe utilizar un arreglo de caracteres de esta
forma
#include<stdio.h>
int main(void)
{
char palabra[] = "hola";
printf("%s\n", palabra);
return 0;
}
En este caso,
para poder crear la cadena, la variable debe ir acompañada de corchetes []. El contenido de la
variable va encerrado en comillas dobles
y su modificador de formato es %s.
En algunos tutoriales indican que se usa el corchete vacío (como en el ejemplo),
mientras que en otros, indican que el corchete va con un número de igual
cantidad más uno, que el número de
letras que tenga la palabra. Por ejemplo, en este caso, la variable palabra,
tiene escrita la palabra “hola” que tiene 4 letras, por lo tanto, en los
corchetes debería ir un 5, creando un arreglo de caracteres de esta forma:
char palabra[5] = “hola”;//4 letras + 1
Otro ejemplo puede ser este:
char palabra[6] = “tango”;// 5 letras + 1
¿Qué pasa si tiene menos números de los indicados?
Pues entonces, el programa empezará a mostrar caracteres extraños, debido a
que no es capaz de mostrar la palabra
completa al no tener suficiente memoria asignada en el arreglo.
Esto es un ejemplo de que el hecho de que un programa compile, no siempre significa que está bien o que mostrará los resultados que esperamos.
¿Y qué pasa si
el arreglo es mucho más grande?, pues, nada a la vista, ya que se puede
imprimir la palabra, pero se desperdiciaría memoria al crear un arreglo más
grande de lo que se necesita. Si algún día encuentro alguna diferencia entre
usar un arreglo vacío y otro asignado, colocaré aquí mismo una actualización.
Mientras tanto, seguiré asignando con arreglos vacíos por un tema de comodidad,
ya que es algo incómodo tener que estar contando letra por letra para saber de
qué tamaño será el arreglo.
Ya que hemos visto números y palabras, entonces aquí
un ejemplo (que para algunos podría parecer obvio, pero para otros no) de ambos
mostrados en una función printf
#include<stdio.h>
int main(void)
{
char
animal[] = "perro";
int cachorros = 5;
printf("Tengo un %s con %d
cachorros", animal, cachorros);
return 0;
}
Y el resultado
sería:
Tengo un perro
con 5 cachorros.
Algo que debo mencionar sobre estas variables, es que de momento no se podrán crear variables de tipo cadena de caracteres vacías para luego asignarle un valor. O sea que, si alguien quiere hacer lo siguiente no va a funcionar:
char animal[];
animal[] = "perro";
Ni siquiera funcionará si asignan números a los corchetes. Para lograr que funcione este tipo de asignación, se tendrán que usar punteros, pero esa es una clase que se verá mucho más adelante.
Esto es todo por ahora. Nos vemos para la próxima, no olviden practicar y mucho, que C a veces se puede complicar.
Gustavo J. Cerda Nilo
No hay comentarios:
Publicar un comentario