En C, trabajar con la memoria es fundamental para manipular datos durante la ejecución de un programa. La memoria RAM es un recurso temporal donde almacenamos valores que necesitamos mientras el programa está activo, como resultados intermedios de cálculos complejos o datos de entrada proporcionados por el usuario. Para manejar esta memoria de forma organizada, utilizamos variables, que son identificadores que reservan un espacio específico para guardar un tipo determinado de dato, ya sea un número, un carácter o un valor flotante.
Declarar una variable en C implica especificar primero el tipo de dato que queremos almacenar y luego darle un nombre único que la identifique dentro del ámbito donde se usa. Por ejemplo, para guardar un carácter podemos declarar char x; y para un número entero int y;. Es importante que el nombre de la variable no se repita en el mismo contexto para evitar conflictos.
Antes de profundizar en las variables, conviene recordar que podemos incluir comentarios en el código usando //. Estos comentarios son ignorados por el compilador y sirven para aclarar el propósito de ciertas líneas o bloques de código para quienes lo leen.
En cuanto a los tipos de enteros, C ofrece varias opciones que varían en tamaño y rango. Tenemos el short (o short int), que suele ocupar 16 bits y permite almacenar valores aproximadamente entre -32,000 y 32,000. El tipo int es el entero estándar, generalmente de 32 bits, con un rango que va desde alrededor de -2,000 millones hasta 2,000 millones. Por último, el long (o long int) suele ocupar 64 bits, permitiendo almacenar números extremadamente grandes, tanto positivos como negativos.
Además, existe la variante unsigned para estos tipos, que indica que la variable no almacenará números negativos. Al no reservar un bit para el signo, el rango de valores positivos se duplica. Por ejemplo, un unsigned short puede almacenar valores desde 0 hasta aproximadamente 65,500, y un unsigned int hasta cerca de 4,000 millones.
Una vez declaradas las variables, podemos asignarles valores usando el operador =. Por ejemplo, x = 'C'; asigna el carácter 'C' a la variable x, y y = 25; asigna el número 25 a y. Estas asignaciones deben terminar con un punto y coma para indicar el fin de la instrucción.
Las variables también pueden usarse en expresiones para realizar cálculos. Por ejemplo, podemos declarar otra variable z y asignarle el doble del valor de y con z = 2 * y;. Esto demuestra cómo podemos combinar variables y operadores aritméticos para manipular datos.
Para visualizar los valores almacenados en las variables, utilizamos la función printf. Esta función permite imprimir texto y valores en la consola. Para incluir el valor de una variable dentro de un texto, usamos los placeholders, que son secuencias especiales dentro de la cadena de texto que indican dónde debe insertarse el valor de una variable.
El placeholder comienza con el símbolo %, seguido de una letra que indica el tipo de dato. Por ejemplo, %d se usa para enteros y %c para caracteres. Si queremos imprimir el valor de y junto con un mensaje, escribimos:
printf("Y igual a %d\n", y);
Aquí, %d será reemplazado por el valor de y. Si queremos imprimir un símbolo % literal, escribimos %%.
Podemos imprimir varias variables en un mismo printf incluyendo tantos placeholders como variables y separando cada variable con comas después de la cadena de texto. Por ejemplo:
printf("Y igual a %d y X igual a %c\n", y, x);
Esto imprimirá el valor de y y luego el valor de x en el orden correspondiente a los placeholders.
Además de las variables locales, podemos pasar datos a funciones mediante parámetros. Declarar parámetros en una función es similar a declarar variables, especificando el tipo y el nombre. Por ejemplo, para crear una función que reciba un nombre y una edad y los imprima, podemos definirla así:
void imprimirDatos(int edad, char *nombre) {
printf("Hola, tu nombre es %s y tu edad es %d.\n", nombre, edad);
}
Aquí, edad es un entero y nombre es un puntero a caracteres, que representa una cadena de texto. Dentro de la función usamos %s en printf para imprimir la cadena.
Para llamar a esta función, simplemente pasamos los argumentos correspondientes:
imprimirDatos(20, "Pepito");
Esto mostrará en pantalla: Hola, tu nombre es Pepito y tu edad es 20.
Así, al combinar variables, asignaciones, impresión y parámetros en funciones, podemos construir programas en C que manipulen datos de forma dinámica y presenten resultados personalizados según la entrada recibida.