unicamente se car- gar\u00b4an al estudiante los costes de reproducci\u00b4on. La reproducci\u00b4on total o parcial con \u00b4animo de lucro o con cualquier \ufb01nalidad comercial est\u00b4a estrictamente prohibida sin el permiso escrito de los autores.
1.1. C es un lenguaje compilado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 1.2. Traduciendo de Python a C: una gu\u00b4\u0131a r\u00b4apida. . . . . . . . . . . . . . . . . . . .5 1.3. Estructura t\u00b4\u0131pica de un programa C. . . . . . . . . . . . . . . . . . . . . . . . .12 1.4. C es un lenguaje de formato libre. . . . . . . . . . . . . . . . . . . . . . . . . . .13 1.5. Hay dos tipos de comentario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 1.6. Valores literales en C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
1.6.1. Enteros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 1.6.2. Flotantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 1.6.3. Cadenas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
1.7. C tiene un rico juego de tipos escalares. . . . . . . . . . . . . . . . . . . . . . . .23 1.7.1. El tipoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 1.7.2. El tipounsigned int. . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 1.7.3. El tipo\ufb02oat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 1.7.4. El tipochar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 1.7.5. El tipounsigned char. . . . . . . . . . . . . . . . . . . . . . . . . . . .24
1.8. Se debe declarar el tipo de toda variable antes de usarla. . . . . . . . . . . . . .25 1.8.1. Identi\ufb01cadores v\u00b4alidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 1.8.2. Sentencias de declaraci\u00b4on. . . . . . . . . . . . . . . . . . . . . . . . . . .25 1.8.3. Declaraci\u00b4on con inicializaci\u00b4on. . . . . . . . . . . . . . . . . . . . . . . . .26
1.9.1. Marcas de formato para la impresi\u00b4on de valores conprintf. . . . . . . . .27 1.10. Variables y direcciones de memoria. . . . . . . . . . . . . . . . . . . . . . . . . .31 1.11. Entrada por teclado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 1.12. Expresiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 1.13. Conversi\u00b4on impl\u00b4\u0131cita y expl\u00b4\u0131cita de tipos. . . . . . . . . . . . . . . . . . . . . . .41 1.14. Las directivas y el preprocesador. . . . . . . . . . . . . . . . . . . . . . . . . . .43 1.15. Constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
1.15.1. De\ufb01nidas con la directivade\ufb01ne. . . . . . . . . . . . . . . . . . . . . . .44
1.15.2. De\ufb01nidas con el adjetivoconst. . . . . . . . . . . . . . . . . . . . . . . .44
1.15.3. Con tipos enumerados. . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
1.16. Las bibliotecas (m\u00b4odulos) se importan con#include. . . . . . . . . . . . . . . .47
1.16.1. La biblioteca matem\u00b4atica. . . . . . . . . . . . . . . . . . . . . . . . . . .47
1.17. Estructuras de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 1.17.1. Estructuras de control condicionales. . . . . . . . . . . . . . . . . . . . .49 1.17.2. Estructuras de control iterativas. . . . . . . . . . . . . . . . . . . . . . .53 1.17.3. Sentencias para alterar el \ufb02ujo iterativo. . . . . . . . . . . . . . . . . . .59
2.1. Vectores est\u00b4aticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 2.1.1. Declaraci\u00b4on de vectores. . . . . . . . . . . . . . . . . . . . . . . . . . . .61 2.1.2. Inicializaci\u00b4on de los vectores. . . . . . . . . . . . . . . . . . . . . . . . . .62 2.1.3. Un programa de ejemplo: la criba de Erat\u00b4ostenes. . . . . . . . . . . . . .63 2.1.4. Otro programa de ejemplo: estad\u00b4\u0131sticas. . . . . . . . . . . . . . . . . . .66 2.1.5. Otro programa de ejemplo: una calculadora para polinomios. . . . . . . .75 2.1.6. Disposici\u00b4on de los vectores en memoria. . . . . . . . . . . . . . . . . . . .81 2.1.7. Algunos problemas de C: accesos il\u00b4\u0131citos a memoria. . . . . . . . . . . .85