1
Primeros pasos en C
- Introducción al lenguaje C y sus ventajas.
- C++ frente a C. Normas C++11 y C11.
- Archivos fuente (.c, .h).
- Estructura general de un programa.
- La sintaxis básica del lenguaje.
- Tipos de datos y constantes básicas.
- Variables globales y locales.
- Almacenamiento y paso de parámetros.
- Entradas/salidas formateadas.
- Los comentarios.
- Uso básico de la línea de producción.
- Entornos de edición, compilación y ejecución.
- Ejecutar un programa inicial.
2
Operadores y expresiones
- Operadores aritméticos.
- Mecanismos de evaluación de expresiones.
- Post y preincremento de decremento.
- Precedencia y asociatividad de los operadores.
- Operadores de asignación.
- Cómo funcionan las expresiones lógicas.
- Expresiones lógicas en sentencias while, if...
- Operadores de comparación : <, >, ==, !=...
- Operadores lógicos: AND, OR, negación.
- Tipos numéricos compuestos. Regla de conversión en expresiones mixtas. Conversiones implícitas/explícitas.
- Inicialización de variables.
- Aritmética de direcciones.
- Formatos de entrada/salida asociados a los tipos digitales.
- Operadores bit a bit: AND, OR, OR exclusivo, complemento a 1, negación. Operadores de desplazamiento: >>, <<.
- Expresión condicional con el operador ternario.
Trabajo práctico
Utilización de operadores y expresiones.
3
Estructuras de control
- Noción de bloques.
- Estructuras de bucle: while, for.
- Instrucciones de control de bucle: break, continue.
- Estructuras de elección: if, else, else if.
- Estructura de opción múltiple: interruptor.
Trabajo práctico
Implantación de estructuras de control.
4
Matrices, punteros y cadenas de caracteres
- Definición, inicialización y acceso a los elementos de un array.
- Definición de un puntero. Recuperación de la dirección de memoria de un objeto. Acceso al contenido de un puntero.
- Equivalentes de puntero/tabla.
- Cálculo de punteros.
- Cadenas de caracteres.
- Ejemplos de manipulación de cadenas.
- C11 Cadenas de caracteres Unicode.
Trabajo práctico
Manipulación de matrices, punteros y cadenas de caracteres.
5
Las estructuras
- Intereses de las estructuras.
- Declarar, inicializar y acceder a los campos de una estructura.
- Utilizar estructuras anidadas.
- Crear nuevos tipos utilizando Typedef.
- Campos de bits.
- Sindicatos.
- Enumeraciones.
- Estructuras anónimas y enumeraciones en C11.
- Definir punteros a estructuras.
Trabajo práctico
Implementación de nuevas estructuras de datos.
6
Las funciones
- Definición de una función.
- Llama a una función.
- Paso de parámetros: por valor o por referencia.
- Código de retorno de la función. Tipos de retorno.
- La función "principal".
Trabajo práctico
Descomposición del código mediante funciones. Gestión de las llamadas a funciones.
7
Compilación separada, clase de asignación
- Mecanismo de funcionamiento de la línea de producción.
- Utilización de bibliotecas de fuentes.
- Noción de Makefile.
- Configuración de la memoria de un programa C (pila, montón, etc.).
- Clases de asignación de variables (auto, register, static, extern).
- Diferentes escenarios para una compilación separada.
- Noción de objeto externo.
- Datos globales y estáticos.
- Datos locales.
- Regla de visibilidad.
- Información adicional sobre funciones e inicializaciones.
8
El preprocesador
- Utilizar macros predefinidas (constantes simbólicas). Definir sus propias macros con #define.
- Definición de macros como funciones. Uso de marcadores # y ##.
- Anula la definición de la constante con #undef.
- Compilación condicional: #if, #ifdef, #ifndef, #elif, #endif.
- Incluya recursos con #include.
Trabajo práctico
Utilización de directivas de preprocesador. Configuración de la compilación condicional.
9
Bibliotecas estándar
- Funciones de cálculo matemático (sqrt, sin...).
- Funciones de entrada/salida (fprintf, fscanf...).
- Funciones de acceso a ficheros (fread, fwrite...).
- Funciones de manipulación de cadenas (strlen, strcat...).
- Funciones de gestión de memoria (malloc, free...).
- Configuración de estructuras encadenadas (listas encadenadas, árboles n-arios, etc.).
- Las funciones "seguras" de la biblioteca estándar C11 (strcat_s, strlen_s, etc.).
Trabajo práctico
Utilización de las principales funciones de la biblioteca estándar.