Una variable en el lenguaje C es fundamentalmente el nombre que se asigna a un espacio reservado de la memoria para almacenar información utilizada en un programa. Cada variable tiene un tipo específico que determina el tamaño y la estructura que se reserva en la memoria. Por ejemplo, una variable de tipo char puede contener un byte de memoria, mientras que un unsigned int puede almacenar valores de 0 a aproximadamente 4.294 millones. Entender esto es crucial para gestionar eficientemente la memoria y los recursos de tu aplicación en C.
¿Cómo se declaran variables en C?
Para comenzar a trabajar con variables en C, es importante saber cómo declararlas correctamente. Las variables pueden ser declaradas dentro o fuera de la función main(), aunque mantenerlas organizadas en un archivo claro es buena práctica.
int i, j, k;// Variables enteras
Las variables deben comenzar con una letra o con el carácter underscore (_).
No pueden comenzar con un símbolo, lo que sería error de sintaxis.
Puedes declarar múltiples variables del mismo tipo separándolas por comas:
int minutosEstacionados =0;// Ejemplo con inicialización
Asimismo, en C puedes inicializar tus variables en el momento de la declaración, una práctica recomendada para evitar valores basura.
¿Cuándo usar extern en las declaraciones de variables?
En proyectos más grandes, donde se utilizan múltiples archivos, es posible que debas declarar una variable como extern. Esta directiva indica que la variable es externa y será utilizada en otros archivos del proyecto. Su uso es limitado y no se discutirá en profundidad en este curso por ser una introducción, pero es vital conocer su existencia.
externint variableExterna;// Ejemplo de declaración `extern`
¿Cómo se manejan las operaciones básicas con variables?
Veamos cómo manejar operaciones básicas como la suma usando variables ya declaradas:
#include<stdio.h>intmain(){int a =1, b =34;int c = a + b;printf("La suma es: %d\n", c);// Uso del %d para imprimir variables de tipo intreturn0;}
El código anterior muestra cómo inicializar variables y realizar una operación de suma. También se ilustra el uso de %d en el printf para imprimir el valor de una variable int.
¿Qué sucede con el manejo de memoria y errores?
El lenguaje C ofrece un nivel bajo de control sobre la memoria del sistema, lo cual puede ser ventajoso, pero también es la fuente de varios problemas. Por ejemplo, si sumas valores que exceden la capacidad de la variable asignada, puedes obtener un comportamiento inesperado:
b =2147483647;// Máximo valor para un intc = a + b;
Este enfoque puede llevar a un desbordamiento del espacio reservado en memoria, haciendo que los valores positivos pasen al espectro de números negativos. Es crucial considerar el tipo de dato idóneo y los límites de rango en las operaciones para evitar crasheos y vulnerabilidades.
En resumen, la correcta declaración y uso de variables, junto con un manejo responsable de la memoria, son pilares fundamentales para una eficiente programación en C. Sigue adelante y profundiza en el aprendizaje sobre la declaración y el uso de variables para construir programas robustos y libres de errores.
Los placeholders (%d) o marcadores de posición son etiquetas que le indican al compilador, lo que debe imprimir en el lugar donde se encuentra la etiqueta
Existen varios placeholders que podemos usar en C, para imprimir variables de diferentes tipos, incluso en un formato particular (Ej. imprimir un dato float con una cantidad definida de decimales). Comparto una tabla que contiene los placeholders más importantes. Espero les sirva
Muy bueno, gracias!
Muchas gracias!!!
%d Se utiliza para representar una parte de la memoria como un número entero.
Placeholders usados en C
%c - a character
%s - a string
%d - a decimal integer
%o - an octal integer
%x - a hexadecimal integer
%p - an address (pointer)
%f - for floats
%e - a floating point number in scientific notation
%E - a floating point number in scientific notation
%% - The % symbol
Gran aporte!
++VALORES ENTEROS:++
int = 4 Bytes (-2147483648 to 2147483647)
unsigned int = 4 Bytes (0 to 4294967295)
short = 2 Bytes (-32768 to 32767)
unsigned short = 2 Bytes (0 to 65535)
long = 8 Bytes (-9223372036854775808 to 9223372036854775807)
unsigned long = 8 Bytes (0 to 18446744073709551615)
++FLOTANTES:++
float = 4 Bytes (1.2E-38 to 3.4E+38) 6 decimal places
double = 8 Bytes (2.3E-308 to 1.7E+308) 15 decimal places
long double = 10 Bytes (3.4E-4932 to 1.1E+4932) 19 decimal places
++CARÁCTER:++
char = 1 Byte (-128 to 127)
unsigned char = 1 Byte (0 to 255)
Gracias, buen aporte
Un tip muy útil para saber hasta que numero puedo representar con determinado tipo de dato es aprendiéndose solo sus bytes. Sabemos que cada byte se compone de 8 bits y que con cada bit puedo representar 2 números (ei, con un bit puedo representar 0 y 1; con 2 bits puedo representar 0,1,2,3; etc). Dicho esto la fórmula se resume a 2^n, siendo n el número de bits. Así, por ejemplo, un unsigned char sería 2^8 siendo el resultado 256 valores que van desde el 0 al 255; un int al tener 4 bytes (que son 32 bits) sería 2^32 = 4,294,967,296 que si lo dividimos entre dos y consideramos el 0 nos da el valor que aparece en la pantalla
#include<stdio.h>//instruccion inclue librerias manejo de entradas y salidas estandares//declaracion de variables Variables Declarations// extern int //cuando las vas ocupar en diferentes arichivos a lo largo de tu codigoint a, b, c;float f,g,h;int main()//cfuncion principal donde la ejecuncion programa comienxa{//inicializacion de variables Variable Initialization a =1; b =34; c = a + b;printf("Value of sum is: %d", c );//%d registra el tipo de dato la variable y posicion donde vamos imprimirreturn0;//finaliza programa}```
no siempre las variables se inician a 0, así que es bueno iniciarlas a 0 por si las dudas
eso mismo he pensado, que si no inicializas una variable esta puede tener un valor, que ese valor sea 0 será mero azar podría ser otro valor, para evitar la aleatoriedad si necesitas que ese valor sea cero no cuente con la suerte sino con la inicialización explícita.
Iniciarlo a cero es una buena practica.
Por fin entiendo el uso de variables
#include <stdio.h>//Variable Declarationsint a, b, c;float f, g, h;int main(){//Variable inicialization a =1; b =34; c = a + b;printf("Value of sum is: %d", c);return0;}```
Buen uso del placeholder
En C, para declarar una variable, se debe especificar su tipo de datos y su nombre. Algunos tipos de datos disponibles en C son:
int: para enteros
float: para números con decimales
double: también para números con decimales, pero con mayor precisión que float
char: para caracteres
bool: para valores booleanos (verdadero o falso)
Por ejemplo, se pueden declarar variables de la siguiente manera:
int edad =25;float precio =4.99;double cantidad =123456789.123456789;char letra ='a';bool es_verdadero =true;
En este caso, se están declarando variables llamadas 'edad', 'precio', 'cantidad', 'letra' y 'es_verdadero', respectivamente, y se les está asignando un valor de tipo int, float, double, char y bool, respectivamente.
Es importante tener en cuenta que, en C, también se puede declarar una variable sin asignarle un valor inicial. En este caso, la variable contendrá un valor basura hasta que se le asigne un valor válido.
<\markdown>
Un blog sobre desbordamiento de memoria
Variable.
Espacio reservado en la memoria para almacenar información.
Cada variable tiene un tipo de dato que determina el tamaño & la estructura que se reserva en memoria.
tipoDato nombreVariable = valorVariable ;char name ="Moises";int year =1994;Donde escriba el tipo de la variable es donde lo va a imprimir.
Para integrar los conocimientos de las primeras clases se podría haber declarado a las variables utilizadas en el último ejercicio (cuando el profe sumó 1 + 34) como de tipo ‘unsigned short’ en vez de ‘int’ 😛
🖥️Variables en C
🔹 ¿Qué es una variable?
📌 Es un nombre que se asigna a un espacio de memoria.
📌 Tiene un tipo de dato, que define:
➡️ Tamaño en memoria
➡️ Rango de valores posibles
✨ Ejemplos:
char → ocupa 1 byte
unsigned int → valores de 0 a ≈ 4,294,000
🔹 Declaración de variables
📝 Sintaxis básica:
👉 tipo nombre;
⚠️ Reglas:
✔️ Comienzan con letra o _
❌ No pueden empezar con símbolos
📌 Ejemplo múltiple:
int i, j, k;
✅ Recomendado: inicializar siempre
int minutosEstacionados = 0;
🔹 extern (variables externas)
🌍 Usado en proyectos con múltiples archivos.
👉 Indica que la variable está definida en otro archivo.
📌 Ejemplo:
extern int variableExterna;
🔹 Operaciones básicas
➕ Puedes hacer operaciones aritméticas con variables.
📌 Ejemplo de suma:
int a = 1, b = 34;
int c = a + b;
printf("La suma es: %d\n", c);
💡 %d = imprimir variables tipo int.
🔹 Memoria y errores
⚡ C permite un control directo de la memoria.
⚠️ Riesgo: desbordamiento cuando se supera el límite.
📌 Ejemplo de error:
b = 2147483647; // Máximo int
c = a + b; // Resultado inesperado
✅ Prevención:
Escoger tipo adecuado.
Conocer límites de cada tipo.
Verificar cálculos.
Gracias
¿Por qué utiliza %d para representar el output de la variable y no %i? Vaya, vaya. Creí que sí o sí debíamos utilizar exactamente el mismo tipo de dato de la variable.
Hola, %d es el placeholder cuando el tipo de dato es entero. Se utiliza la letra d porque la base es decimal. Aunque también se puede utilizar %i creo que es mucho menos común.
Gracias por la respuesta, lo tomaré en cuenta!
Una variable es el nombre que se le va a dar en el espacio reservado de la memoria para poder almacenar la info del programa.
Cada variable va a tener un tipo específico, determinando el tamaño y estructura que se esta reservando en la memoria.
Se pueden declarar variables fuera del main.
Al programar se debe pensar cuál es el tipo de datos que mas va a servir, analizando los máximos datos que se pueden almacenar.
Se pueden declarar variables de un mismo tipo y se pueden separar por comas.
Se pueden inicializar variables en un valor o no:
E.G: int minutos = 20;
int minutos;
Respeta los espacios como el profesor lo hizo en el ejemplo, esto me estaba generando un error y perdí bastante tiempo buscándolo
Muy buena clase
Estoy cursando este curso para refrescar cosas, mi pregunta es...
cual es el curso que le sigue en c ?porque no he encontrado cursos de c de nivel intermedio o avanzado
Como es el scope en C?, lo investigare mas tarde, pero se me hace que las variables siempre que esten afuera de toda la funcion son globales no?