StudyFiWiki
WikiAplicación web
StudyFi

Materiales de estudio con IA para todos los estudiantes. Resúmenes, tarjetas, tests, podcasts y mapas mentales.

Materiales de estudio

  • Wiki
  • Aplicación web
  • Registro gratis
  • Sobre StudyFi

Legal

  • Términos del servicio
  • RGPD
  • Contacto
Descargar en
App Store
Descargar en
Google Play
© 2026 StudyFi s.r.o.Creado con IA para estudiantes
Wiki💻 Ciencias de la ComputaciónFundamentos de Programación: Variables y OperadoresResumen

Resumen de Fundamentos de Programación: Variables y Operadores

Fundamentos de Programación: Variables y Operadores Esenciales

ResumenTest de conocimientosTarjetasPodcastMapa mental

Introducción

La programación en C es la base de muchos sistemas, compiladores y aplicaciones de bajo nivel. Este material ofrece una visión práctica y estructurada para estudiantes universitarios, centrándose en conceptos de diseño, estructura de programas, control de flujo, modularidad, manejo de memoria dinámica, depuración y buenas prácticas. No se tratan aquí Variables, Tipos de datos ni Operadores, ya que se cubren en otros módulos.

Definición: El lenguaje C es un lenguaje de programación de propósito general, de bajo nivel relativo, diseñado para permitir control preciso del hardware y eficiencia en la ejecución.

Estructura de un programa en C

Componentes principales

  • Directivas de preprocesador: #include, #define y macros.
  • Declaraciones de funciones y prototipos.
  • Función main como punto de entrada.
  • Bloques de código y sentencias de control.

Definición: Una directiva de preprocesador es una instrucción procesada antes de la compilación que modifica el texto fuente, típicamente para incluir cabeceras o definir macros.

Ejemplo básico de estructura

#include <stdio.h>

void saludar(void); // prototipo

int main(void) {
    saludar();
    return 0;
}

void saludar(void) {
    printf("Hola, mundo\n");
}

Control de flujo y estructuras de decisión

Aunque no revisamos operadores específicos, es importante entender la lógica que gobierna el flujo: if, switch, for, while, do...while, y el uso de break y continue.

  • Use switch para seleccionar entre múltiples casos discretos.
  • Prefiera bucles con condiciones claras para evitar bucles infinitos.

Definición: Un bucle es una estructura de control que repite un bloque de código mientras se cumpla una condición.

Ejemplo: menú con switch

#include <stdio.h>

int main(void) {
    int opcion = 1; // ejemplo
    switch (opcion) {
        case 1:
            printf("Seleccionó 1\n");
            break;
        case 2:
            printf("Seleccionó 2\n");
            break;
        default:
            printf("Opción inválida\n");
    }
    return 0;
}

Funciones y modularidad

  • Diseñar funciones pequeñas y con una sola responsabilidad.
  • Usar prototipos en cabeceras para separar interfaz e implementación.
  • Pasaje por valor vs pasaje por referencia (punteros) para modificar datos desde la función.

Definición: Una interfaz en C típicamente se expresa mediante un archivo de cabecera .h que contiene declaraciones de funciones, macros y tipos públicos.

Ejemplo: separación en archivos

  • archivo math_utils.h con prototipos
  • archivo math_utils.c con implementaciones
  • archivo main.c que incluye math_utils.h

Punteros y manejo de memoria (dinámica)

  • malloc, calloc, realloc y free son funciones esenciales para la gestión dinámica.
  • Siempre verificar que malloc no devuelva NULL antes de usar la memoria.
  • Evitar fugas de memoria (memory leaks) liberando lo asignado.

Definición: Un puntero es una variable que almacena la dirección de memoria de otra variable o bloque de memoria.

Ejemplo: asignación dinámica simple

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int *arr = malloc(10 * sizeof *arr);
    if (arr == NULL) {
        perror("malloc");
        return 1;
    }
    // uso de arr
    free(arr);
    return 0;
}

Tabla comparativa: malloc vs calloc vs realloc

FunciónInicializaciónUso típicoComentario
mallocNo inicializaAsignar $n$ bytesRápido, requiere inicializar si se necesita valor cero
callocInicializa a ceroAsignar $n$ elementos de $m$ bytesÚtil para estructuras inicializadas a cero
reallocConserva/ajusta memoriaCambiar tamaño de un bloque asignadoPuede mover el bloque; verificar puntero devuelto

Seguridad y errores comunes

  • Comprobar siempre límites al indexar arrays para evitar desbordamientos.
  • Inicializar punteros antes de usarlos.
  • Evitar uso de memoria l
Zaregistruj se pro celé shrnutí
TarjetasTest de conocimientosResumenPodcastMapa mental
Empezar gratis

¿Ya tienes cuenta? Iniciar sesión

Programación en C

Klíčové pojmy: Comprender la estructura básica de un programa en C, incluyendo preprocesador, prototipos y main, Separar interfaz e implementación mediante archivos .h y .c para mejorar modularidad, Diseñar funciones pequeñas con una sola responsabilidad, Usar punteros para pasar por referencia y modificar datos desde funciones, Gestionar memoria dinámica con malloc, calloc, realloc y free verificando retornos, Evitar desbordamientos de buffer validando límites al indexar arrays, Depurar con gdb, valgrind y sanitizers; reproducir fallos con casos mínimos, Seguir buenas prácticas de estilo: comentarios claros, nombres consistentes y funciones cortas, Verificar y manejar errores de asignación de memoria comprobando si punteros son NULL, Preferir pruebas unitarias y casos de prueba mínimos para detectar regresiones

## Introducción La **programación en C** es la base de muchos sistemas, compiladores y aplicaciones de bajo nivel. Este material ofrece una visión práctica y estructurada para estudiantes universitarios, centrándose en conceptos de diseño, estructura de programas, control de flujo, modularidad, manejo de memoria dinámica, depuración y buenas prácticas. No se tratan aquí Variables, Tipos de datos ni Operadores, ya que se cubren en otros módulos. > Definición: El lenguaje C es un lenguaje de programación de propósito general, de bajo nivel relativo, diseñado para permitir control preciso del hardware y eficiencia en la ejecución. ## Estructura de un programa en C ### Componentes principales - Directivas de preprocesador: `#include`, `#define` y macros. - Declaraciones de funciones y prototipos. - Función `main` como punto de entrada. - Bloques de código y sentencias de control. > Definición: Una directiva de preprocesador es una instrucción procesada antes de la compilación que modifica el texto fuente, típicamente para incluir cabeceras o definir macros. ### Ejemplo básico de estructura ```c #include <stdio.h> void saludar(void); // prototipo int main(void) { saludar(); return 0; } void saludar(void) { printf("Hola, mundo\n"); } ``` ## Control de flujo y estructuras de decisión Aunque no revisamos operadores específicos, es importante entender la lógica que gobierna el flujo: `if`, `switch`, `for`, `while`, `do...while`, y el uso de `break` y `continue`. - Use `switch` para seleccionar entre múltiples casos discretos. - Prefiera bucles con condiciones claras para evitar bucles infinitos. > Definición: Un bucle es una estructura de control que repite un bloque de código mientras se cumpla una condición. ### Ejemplo: menú con switch ```c #include <stdio.h> int main(void) { int opcion = 1; // ejemplo switch (opcion) { case 1: printf("Seleccionó 1\n"); break; case 2: printf("Seleccionó 2\n"); break; default: printf("Opción inválida\n"); } return 0; } ``` ## Funciones y modularidad - Diseñar funciones pequeñas y con una sola responsabilidad. - Usar prototipos en cabeceras para separar interfaz e implementación. - Pasaje por valor vs pasaje por referencia (punteros) para modificar datos desde la función. > Definición: Una interfaz en C típicamente se expresa mediante un archivo de cabecera `.h` que contiene declaraciones de funciones, macros y tipos públicos. ### Ejemplo: separación en archivos - archivo `math_utils.h` con prototipos - archivo `math_utils.c` con implementaciones - archivo `main.c` que incluye `math_utils.h` ## Punteros y manejo de memoria (dinámica) - `malloc`, `calloc`, `realloc` y `free` son funciones esenciales para la gestión dinámica. - Siempre verificar que `malloc` no devuelva `NULL` antes de usar la memoria. - Evitar fugas de memoria (memory leaks) liberando lo asignado. > Definición: Un puntero es una variable que almacena la dirección de memoria de otra variable o bloque de memoria. ### Ejemplo: asignación dinámica simple ```c #include <stdio.h> #include <stdlib.h> int main(void) { int *arr = malloc(10 * sizeof *arr); if (arr == NULL) { perror("malloc"); return 1; } // uso de arr free(arr); return 0; } ``` ### Tabla comparativa: malloc vs calloc vs realloc | Función | Inicialización | Uso típico | Comentario | |---|---:|---|---| | malloc | No inicializa | Asignar $n$ bytes | Rápido, requiere inicializar si se necesita valor cero | | calloc | Inicializa a cero | Asignar $n$ elementos de $m$ bytes | Útil para estructuras inicializadas a cero | | realloc | Conserva/ajusta memoria | Cambiar tamaño de un bloque asignado | Puede mover el bloque; verificar puntero devuelto | ## Seguridad y errores comunes - Comprobar siempre límites al indexar arrays para evitar desbordamientos. - Inicializar punteros antes de usarlos. - Evitar uso de memoria l

Otros materiales

ResumenTest de conocimientosTarjetasPodcastMapa mental
← Volver al tema