Publicado el 22 de Junio del 2018
1.041 visualizaciones desde el 22 de Junio del 2018
278,5 KB
81 paginas
Creado hace 9a (17/05/2016)
Lenguaje C
Tutorial
Int. a la Programacion - Int. a la Computacion - Fundamentos de la Informatica
(Ing. Electr. - Prof. en Tec. Electr. - T.U.M - T.U.E. - T.U.G. - T.U.R. - T.U.W. - T.U.T.)
Programacion (Prof. en Tec. Electr. - Ing. Electr. - T.U.M )
Programacion I (T.U.G. - T.U.R.)
Electronica Programable (T.U.E.)
Area de Servicios
Departamento de Informatica
Universidad Nacional de San Luis
2016
Lenguaje C
Indice
1. Introduccion
2. El primer programa
3. Tipos de datos
3.1. Nombres de variables y declaraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. El tipo entero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. El tipo caracter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Constantes enteras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Combinando enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6. El tipo otante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7. Combinando otantes con enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8. Conversion de tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
4
4
5
6
7
8
9
9
9
4. Operadores
10
4.1. Operadores aritmeticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2. Operadores relacionales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3. Operadores logicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4. Operadores a nivel de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.5. Operadores de asignacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.6. Operadores de incremento y decremento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.7. Operador condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5. Control de secuencia
15
5.1. La sentencia de seleccion if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.2. La sentencia de seleccion switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.3. La sentencia de iteracion while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4. La sentencia de iteracion do while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.5. La sentencia de iteracion for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.6. Las sentencias break y continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6. Objetos de datos estructurados
22
6.1. Arreglos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2. Estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3. Uniones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.4. Combinacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7. Funciones
26
7.1. Creacion y utilizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.2. Parametros formales y Parametros reales o actuales . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.3. Tipos de una funcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.3.1. Devolucion de un valor desde una funcion . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.3.2. Funciones de tipo void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.4. Un programa mas complejo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8. Punteros
30
8.1. Punteros como parametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.2. Punteros y arreglos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.3. Aritmetica de punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.4. Punteros a estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.4.1. Declaracion de un puntero a estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Area de Servicios - Departamento de Informatica - Universidad Nacional de San Luis
1
Lenguaje C
8.4.2. Utilizacion de punteros a estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9. Strings
46
9.1. Funciones de strings de biblioteca en Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
9.2. Funciones de strings denidas por el programador . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
10.Entrada y salida estandar
49
10.1. Entrada y Salida Basica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10.2. Entrada y Salida Formateada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.Archivos
51
11.1. Archivos ASCII y Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
11.2. Trabajo con los archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.2.1. Archivos ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.2.2. Archivos Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
11.3. Ejemplos
12.Administracion dinamica de memoria
13.Parametros del programa
14.Declaraciones de tipos
59
61
62
15.Estructura del programa
62
15.1. Clases de almacenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
15.2. Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
16.El preprocesador
A. Precedencia y asociatividad de las operaciones
B. Especicadores de formato
C. Respuestas
65
68
69
70
D. Bibliotecas
76
D.1. Funciones matematicas: math.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
D.2. Funciones de cadenas de caracteres: string.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
D.3. Funciones de utilera: stdlib.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
D.4. Funciones de entrada y salida con archivos: stdio.h . . . . . . . . . . . . . . . . . . . . . . . . . . 78
D.4.1. Lectura y escritura en archivos ASCII o de textos
. . . . . . . . . . . . . . . . . . . . . . 79
D.4.2. Lectura y escritura en archivos binarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Area de Servicios - Departamento de Informatica - Universidad Nacional de San Luis
2
Lenguaje C
1.
Introduccion
El lenguaje C es un lenguaje de programacion que fue denido por Dennis Ritchie en los laboratorios de
la AT&T Bell en 1972. Fue denido en principio para el sistema operativo Unix, pero se ha extendido a casi
todos los sistemas hoy en da. De hecho, el diseño de muchos lenguajes mas modernos se han basado en las
caractersticas del lenguaje C.
El lenguaje C es un lenguaje de programacion de proposito general, que permite la escritura de programas
compactos, ecientes y de alta portabilidad. Provee al programador de un medio conveniente y efectivo para
acceder a los recursos de la computadora. Es un lenguaje de suciente alto nivel para hacer los programas
portables y legibles, pero de relativo bajo nivel para adecuarse al hardware particular.
C es un lenguaje muy simple, con un conjunto de operadores muy bien diseñados. No provee, por ejemplo,
operadores para trabajar con strings ni arreglos en forma completa, no provee mecanismos de administracion
dinamica de memoria, ni forma de trabajar con archivos. Es decir, el lenguaje C es muy pequeño y facil de
describir. Todas las operaciones adicionales tales como las mencionadas, cuya falta hara al lenguaje C muy
restringido en sus aplicaciones, son provistas a traves de funciones presentes en una biblioteca que esta incluso
escrita en el mismo lenguaje C.
El lenguaje fue documentado completamente en 1977 en el libro \El lenguaje de programacion C", de
Kernighan y Ritchie. Fue de hecho el primer estandar. A medida que C fue creciendo en popularidad y fue
implementado en distintos ambientes, perdio su portabilidad, apareciendo una serie de variantes del lenguaje.
En el año 1988 el ANSI (American National Standards Institute) denio un nuevo estandar corrigiendo algunos
errores en su diseño original, y agregando algunas caractersticas que demostraron ser necesarias. El lenguaje,
conocido como ANSI C, es de total aceptacion hoy en da.
2. El primer programa
La mejor forma de comenzar a estudiar C es viendo algunos ejemplos. De hecho, todo programador C escribio
alguna vez el fa
Comentarios de: Lenguaje C - Tutorial (0)
No hay comentarios