Next:
Índice General
 
Índice General
INTRODUCCIÓN AL LENGUAJE
C
ACM Capítulo de Estudiantes
Facultad de Informática, UPM
Noviembre 2003
Índice General
Índice de Figuras
Índice de Tablas
Prefacio
1. Introducción
1.1 Un poco de historia...
1.2 Características
1.3 C frente a C++
2. Herramientas y software para la programación en C (entorno GNU/Linux)
2.1 Compilador:
gcc
2.1.1 Manejo de gcc
2.1.2 Warnings y errores
2.1.3 Opciones más comunes
2.2 Depuradores:
gdb
y
ddd
2.2.1 Depurando con
gdb
2.2.2 Depurador gráfico:
ddd
2.2.3 Manejo
2.3 Control de dependencias:
make
2.4 Manuales:
man
2.5 Control Concurrente de Versiones:
cvs
2.5.1 Escenario de uso
2.5.2 Manejo
2.6 Herramientas de desarrollo C sobre Windows
2.6.1 GCC en Windows
3. Introducción al lenguaje C. Sintaxis
3.1 Estructura de un programa simple en C
3.2 Tipos básicos
3.2.1 Tipos de datos
3.2.2 Calificadores
3.2.2.1
short
y
long
3.2.2.2
signed
y
unsigned
3.2.2.3
static
(
local
)
3.2.2.4
static
(
global
)
3.2.2.5
register
3.2.2.6
volatile
3.2.3 Variables
3.2.3.1 Sintaxis de declaración de variables
3.2.3.2 Declaraciones y nombres
3.3 Constantes
3.3.1 Constantes numéricas
3.3.2 Constantes de caracteres
3.3.3 Constantes enumeradas
3.3.4 Uso del preprocesador para definir constantes simbólicas
3.4 Operadores
3.4.1 Operadores aritméticos
3.4.2 Operadores relacionales
3.4.3 Operadores lógicos
3.4.4 Operadores a nivel de bit (bitwise operators)
3.4.5 Operadores especiales
3.4.6 Precedencia de operadores
3.5 Estructuras de control
3.5.1 Sentencia if
3.5.2 Sentencia if-else
3.5.3 Sentencia switch
3.5.4 Sentencia break
3.5.5 Sentencia for
3.5.6 Sentencia while
3.5.7 Sentencia do-while
3.6 Funciones y subrutinas
3.6.1 Paso de parámetros a funciones. Llamadas por valor
3.7 Tipos de datos compuestos
3.7.1
Arrays
3.7.1.1 Definición y declaración de arrays en C
3.7.1.2 Acceso a elementos de un
array
3.7.2 Estructuras
3.7.2.1 Definición de una estructura en un programa C
3.7.2.2 Declaración de variables de esa estructura
3.7.2.3 Accediendo a los campos de una estructura
3.7.2.4 Ejemplo
3.7.3 Uniones
3.7.3.1 Definicion de una unión en un programa C
3.7.3.2 Declaración de variables tipo union
3.7.3.3 Ejemplo
4. El modelo de compilación de C
4.1 Introducción
4.2 El preprocesador
4.2.1
#include
: inclusión de otros ficheros
4.2.2
#define:
creación de macros
4.2.3 Compilación condicional
4.2.3.1 uso de #if, #else, #elif y #endif
4.2.3.2 uso de #ifdef , #ifndef y #undef
4.3 Compilación
4.4 Enlazado
4.5 Un ejemplo sencillo
5. Punteros
5.1 Introducción
5.1.1 ¿Qué es un puntero?
5.1.2 ¿Para qué necesito yo un puntero?
5.2 Sintáxis de punteros
5.2.1 Declaración de punteros
5.2.2 Punteros genéricos
5.2.3 Los operadores de contenido ``
*
'' y de indirección ``
&
''
5.3 Strings
5.4 Aritmética de punteros
5.4.1 Contexto
5.4.2 Tipos de operaciones
5.4.3 Ejemplos de aritmética
5.5 Estructuras y punteros
5.5.1 El operador ``
->
''
5.6 Memoria dinámica
5.6.1 ¿Qué es la memoria dinámica?
5.6.2 El mapa de memoria en Unix
5.6.2.1 La pila
5.6.2.2 El heap
5.6.3 Primitivas básicas
5.6.3.1
malloc
5.6.3.2
realloc
5.6.3.3
free
5.6.3.4 strdup
5.7 Arrays y punteros
5.7.1 Repaso
5.7.2 Introducción
5.8 Indirecciones múltiples
5.8.1 Declaración
5.8.2 Utilización
5.8.3 Ejemplos de uso
5.8.4 Cadenas enlazadas
5.9 Paso por referencia vs. paso por valor
5.9.1 ¿Qué es el paso por referencia?
5.9.2 ¿Para qué necesito el paso por referencia?
5.10 Errores con punteros
5.10.1 Comparación de punteros a cadenas
5.10.2 Punteros ``a Roma" (
memory leaks
)
5.10.3 Doble liberación
5.10.4 Usar
en lugar de
->
5.10.5 Operar con los punteros en lugar de con los contenidos
5.10.6 Finalización de cadenas
6. La librería estándar de C
6.1 Introducción
6.2 Principales ficheros de cabecera
6.3 stdio.h
6.3.1 Funciones para el manejo de la Entrada/Salida
6.3.1.1 printf
6.3.1.2 scanf
6.3.1.3 puts
6.3.2 Funciones para el manejo de ficheros
6.3.2.1 fopen
6.3.2.2 fclose
6.3.2.3 fwrite
6.3.2.4 fread
6.3.2.5 fgetc
6.3.2.6 fgets
6.3.2.7 fputc
6.3.2.8 fputs
6.3.2.9 fscanf
6.3.2.10 fprintf
6.3.2.11 fseek
6.4 stdlib.h
6.4.1 Funciones para la conversión de tipos
6.4.1.1 abs
6.4.1.2 atof
6.4.1.3 atoi
6.4.1.4 atol
6.4.1.5 strtod
6.4.1.6 strtol
6.4.2 Funciones para el manejo de memoria
6.4.2.1 malloc
6.4.2.2 calloc
6.4.2.3 realloc
6.4.2.4 free
6.5 string.h
6.5.0.1 strcmp
6.5.0.2 strcpy
6.5.0.3 strdup
6.5.0.4 strlen
6.5.0.5 strncmp
6.5.0.6 strncpy
6.5.0.7 strndup
6.6 math.h
6.6.0.1 ceil
6.6.0.2 cos
6.6.0.3 exp
6.6.0.4 fabs
6.6.0.5 floor
6.6.0.6 log
6.6.0.7 log10
6.6.0.8 pow
6.6.0.9 sin
6.6.0.10 sqrt
6.6.0.11 tan
6.7 ctype.h
6.7.0.1 islower
6.7.0.2 isupper
6.7.0.3 tolower
6.7.0.4 toupper
7. Temas avanzados
7.1 Entrada/Salida con archivos: Un pequeño tutorial
7.1.1 Variables de
flujo
7.1.2 Abrir el fichero
7.1.3 Leer y escribir en un fichero
7.1.3.1 Lectura
7.1.3.2 Escritura
7.1.4 Cerrar el fichero
7.1.5 Ejemplo
7.2 Línea de comandos
7.2.1 Introducción
7.2.2 El prototipo de la función
main
7.3 Punteros a funciones
7.3.1 El concepto
7.3.2 ¿Para qué sirven?
7.3.3 Ejemplo de orden superior
7.3.4 Ejemplo de código mutante
7.4 Gestión de bibliotecas de funciones
7.4.1 ¿Qué es una biblioteca?
7.4.2 ¿Para qué necesito una biblioteca?
7.4.3 Bibliotecas en Unix/Linux:
ar
7.4.4 Ejemplo
7.5 Llamadas al sistema: POSIX
7.5.1 ¿Qué es POSIX?
7.5.2 Llamadas POSIX para gestión de procesos
7.5.2.1 getpid
7.5.2.2 getuid
7.5.2.3 getgid
7.5.2.4 fork
7.5.2.5 execvp
7.5.2.6 wait
7.5.2.7 waitpid
7.5.2.8 exit
7.5.2.9 kill
7.5.2.10 pause
7.5.2.11 sleep
7.5.3 Llamadas POSIX para la gestión de memoria
7.5.3.1 brk
7.5.3.2 dlopen
7.5.3.3 dlclose
7.5.4 Llamadas POSIX para la entrada/salida y el sistema de ficheros
7.5.4.1 open
7.5.4.2 creat
7.5.4.3 read
7.5.4.4 write
7.5.4.5 close
7.5.4.6 dup
7.5.4.7 opendir
7.5.4.8 readdir
7.5.4.9 closedir
7.5.4.10 mkdir
7.5.4.11 rmdir
7.5.4.12 link
7.5.4.13 symlink
7.5.4.14 unlink
7.5.4.15 chdir
7.5.4.16 rename
7.5.4.17 umask
7.5.4.18 chmod
7.5.4.19 chown
7.5.4.20 utime
A. Material de referencia
A.1 Construcciones equivalentes ADA-C
A.1.1 Introducción
A.1.2 Sintaxis Ada vs. Sintaxis C
A.1.2.1 Tipos, Variables y Headers
A.1.2.2 Sentencias de selección y de iteración
A.1.2.3 Punteros
A.1.2.4 Funciones
Bibliografía
Sobre este documento...
Ramon Pons Vivanco 2003-10-31