SlideShare una empresa de Scribd logo
Programación en C DATSI, FI, UPM José M. Peña [email_address] (Segunda Parte)
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación en C Modificadores de Ámbito
Modificadores de Variables ,[object Object],[object Object],[object Object],[object Object],[object Object]
Modificadores de Variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modificadores de Variables ( static ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Salida: 0 1 2 3
Modificadores de Variables ( const ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modificadores de Funciones ,[object Object],[object Object],[object Object],[object Object]
Modificadores de Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fichero2.c: extern  void aux(); int main() { aux(); func() ; /* NO   VISIBLE */ }
Modificadores de Funciones Fichero1.c compilación Fichero1.o aux  Impl G func  Impl L enlace Fichero2.c compilación Fichero2.o aux  Undef  func  Undef  main  Impl G EJECUTABLE
Modificadores de Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],{ if( x+1 > y ) x = x+1 ; else x = y ; }
Programación en C Punteros y Memoria Dinámica
Aritmética de Punteros ,[object Object],[object Object],[object Object],C o l e c c i ó n  v v[7] *(p+2) for(p=v;*p;p++) { printf(“%c”,*p) }
Aritmética de Punteros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aritmética de Punteros ,[object Object],[object Object],[object Object],[object Object],p_int 3F0 p_int + 1 ++ sizeof(int)=4 3F1 3F2 3F3 3F4 3F5 3F6 3F7 3F8 3F9 3FA 3FB p_char ++ p_char + 1
Punteros a Funciones ,[object Object],[object Object],[object Object],[object Object]
Punteros a Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Punteros a Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Memoria Dinámica ,[object Object],[object Object],[object Object],[object Object],[object Object]
Memoria Dinámica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],a b[0] i c b[1] a b[0] i c b[1] a b[0] i c b[1] *c *i *c Estática Dinámica
Programación en C Operadores de Bit
Operadores de Bit ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operadores de Bit ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],00110000 00010011 a b 00010000 x = 16 00110011 y = 51 00100011 z = 35 11001111 w = 207 00001100 t = 12 10011000 s = 152
Uso de los Operadores de Bit ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación en C Preprocesador y Compilación
Fase de Compilación .c Fichero Fuente Preprocesamiento .c Paso a Ensamblador .s .o Ensamblar Compilación .o .o .o .o EXE Enlazado .a Librerías Fichero Ejecutable
Directrices del Preprocesador ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Constantes y Macros ,[object Object],[object Object],[object Object],[object Object]
Constantes y Macros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Constantes y Macros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Macros vs Funciones ,[object Object],[object Object],[object Object],[object Object],max= func_max (a++,b--); max 3 a 3 b 2 Usando funciones max= macro_max (a++,b--); max 2 a 3 b 1 Usando macros
Inclusión de Ficheros ,[object Object],[object Object],[object Object],#include “aux.h” int main() { ...} fich.c int  func1(int a); viod func2(); aux.h int  func1(int a); viod func2(); int main() { ...} Preprocesamiento
Inclusión de Ficheros ,[object Object],[object Object],[object Object],[object Object]
Sentencias Condicionales ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo: Depuración ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo: Fichero de Cabecera #ifndef _AUX_H_ #define _AUX_H_ <definiciones> #endif aux.h #include “aux.h” #include “aux.h” int main() { ... } Evita la redefinicion de funciones y variables
Enlace de Ficheros .c extern int v;  int main() {.h().} extern void k(); static h() {.k().} .c int k() {.l().} int l() {...} int v; .o 3A00: f 3A08: main 3B12: h v <undef> k <undef> .o 1600: k 17FF: l 1812: v EXE gcc -c gcc -c gcc -o Compilación Enlace
Programación en C Librerías Estándar
Manejo de Cadenas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manejo de Buffers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entrada Salida ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ficheros Especiales ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ordenación y Búsqueda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conversión de Tipo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Funciones Matemáticas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de Funciones de Librería ,[object Object],[object Object],[object Object],[object Object]
Programación en C Argumentos del Programa
Argumentos de  main ,[object Object],[object Object],[object Object],[object Object]
Argumentos de  main ,[object Object],[object Object],int main( int argc ,  char* argv[] )   argc =5 argv[0] argv[1] argv[2] argv[3] argv[4] p r o g  u n o  d o s  t r e s  c u a t  r o
Argumentos de  main ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Lenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II PunterosLenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II Punteros
sirfids
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
Andy Otañez
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
Abraham Zamudio
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
Cristian Maza
 
Libreria c++
Libreria c++Libreria c++
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
Curso c++
Curso c++Curso c++
Lecture 37
Lecture 37Lecture 37
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
diego MC
 
Mynor Alexander Hernandez Canuz
Mynor Alexander Hernandez CanuzMynor Alexander Hernandez Canuz
Mynor Alexander Hernandez Canuz
guest79d55c9
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
andermijan
 
Arreglos. lidia
Arreglos. lidiaArreglos. lidia
Arreglos. lidia
lidia gonzalez
 
Programación C++ - DEV C++
Programación C++ - DEV C++Programación C++ - DEV C++
Apuntes generación de codigo intermedio
Apuntes generación de codigo intermedioApuntes generación de codigo intermedio
Apuntes generación de codigo intermedio
Humano Terricola
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
Abraham Zamudio
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
pedreror1
 
Creacion de una librería propia en C
Creacion de una librería propia en CCreacion de una librería propia en C
Creacion de una librería propia en C
Ronny Parra
 
Teoria punteros
Teoria punterosTeoria punteros
Teoria punteros
Kevin Martínez
 
Punteros
PunterosPunteros
Punteros
lguerrerj
 

La actualidad más candente (19)

Lenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II PunterosLenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II Punteros
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
Libreria c++
Libreria c++Libreria c++
Libreria c++
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Curso c++
Curso c++Curso c++
Curso c++
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Mynor Alexander Hernandez Canuz
Mynor Alexander Hernandez CanuzMynor Alexander Hernandez Canuz
Mynor Alexander Hernandez Canuz
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Arreglos. lidia
Arreglos. lidiaArreglos. lidia
Arreglos. lidia
 
Programación C++ - DEV C++
Programación C++ - DEV C++Programación C++ - DEV C++
Programación C++ - DEV C++
 
Apuntes generación de codigo intermedio
Apuntes generación de codigo intermedioApuntes generación de codigo intermedio
Apuntes generación de codigo intermedio
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
 
Creacion de una librería propia en C
Creacion de una librería propia en CCreacion de una librería propia en C
Creacion de una librería propia en C
 
Teoria punteros
Teoria punterosTeoria punteros
Teoria punteros
 
Punteros
PunterosPunteros
Punteros
 

Destacado

Introducción a La Programación En C
Introducción a La Programación En CIntroducción a La Programación En C
Introducción a La Programación En C
painni
 
Picaxe
PicaxePicaxe
REPLICACION DEL ADN
REPLICACION DEL ADNREPLICACION DEL ADN
REPLICACION DEL ADN
Cristina BC
 
Sistema de picaxe
Sistema de picaxeSistema de picaxe
Sistema de picaxe
cristina_jimez
 
Manual de programacion lenguaje en C
Manual de programacion lenguaje en CManual de programacion lenguaje en C
Manual de programacion lenguaje en C
Ashok Bhoiwani Cabrera
 
Introduccion a lenguaje_c
Introduccion a lenguaje_cIntroduccion a lenguaje_c
Introduccion a lenguaje_c
Clariza
 
Introduccion Lenguaje C Blanca
Introduccion Lenguaje  C BlancaIntroduccion Lenguaje  C Blanca
Introduccion Lenguaje C Blanca
Blanca Valero Hilario
 
Cuaderno de prácticas robotica con Picaxe 08M2
Cuaderno de prácticas robotica con Picaxe 08M2Cuaderno de prácticas robotica con Picaxe 08M2
Cuaderno de prácticas robotica con Picaxe 08M2
cantabrobots30
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
Tete Alar
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
Seth Familian
 

Destacado (10)

Introducción a La Programación En C
Introducción a La Programación En CIntroducción a La Programación En C
Introducción a La Programación En C
 
Picaxe
PicaxePicaxe
Picaxe
 
REPLICACION DEL ADN
REPLICACION DEL ADNREPLICACION DEL ADN
REPLICACION DEL ADN
 
Sistema de picaxe
Sistema de picaxeSistema de picaxe
Sistema de picaxe
 
Manual de programacion lenguaje en C
Manual de programacion lenguaje en CManual de programacion lenguaje en C
Manual de programacion lenguaje en C
 
Introduccion a lenguaje_c
Introduccion a lenguaje_cIntroduccion a lenguaje_c
Introduccion a lenguaje_c
 
Introduccion Lenguaje C Blanca
Introduccion Lenguaje  C BlancaIntroduccion Lenguaje  C Blanca
Introduccion Lenguaje C Blanca
 
Cuaderno de prácticas robotica con Picaxe 08M2
Cuaderno de prácticas robotica con Picaxe 08M2Cuaderno de prácticas robotica con Picaxe 08M2
Cuaderno de prácticas robotica con Picaxe 08M2
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Similar a Curso c ii

Cpp
CppCpp
Cpp
CppCpp
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
erikalejo
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacion
thaynasantos1997
 
ELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdfELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdf
Rosmary Delgado Sola Delgado
 
Turbo c
Turbo cTurbo c
Turbo c
tacubomx
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
rotflol
 
Curso c i
Curso c iCurso c i
Curso c i
Jorge De Leòn
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
karlalopezbello
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
Jarvis_15
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
HUGOJAREDSANCHEZMARTINEZ
 
274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)
Santy Chavez
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
tacubomx
 
Investigacion 1
Investigacion 1Investigacion 1
Investigacion 1
guest832976
 
Clase 1- Programacion Lineal
Clase 1- Programacion LinealClase 1- Programacion Lineal
Clase 1- Programacion Lineal
karlalopezbello
 
P03.Programación en c para pics
P03.Programación en c para picsP03.Programación en c para pics
P03.Programación en c para pics
Jonathan Ruiz de Garibay
 
Elementos básicos del lenguaje
Elementos básicos del lenguajeElementos básicos del lenguaje
Elementos básicos del lenguaje
marbcm
 
Introduccion a la programacion en c 1
Introduccion a la programacion en c 1Introduccion a la programacion en c 1
Introduccion a la programacion en c 1
georgemanson69
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
Maztherprozh
 
Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)
Maztherprozh
 

Similar a Curso c ii (20)

Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacion
 
ELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdfELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdf
 
Turbo c
Turbo cTurbo c
Turbo c
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
Curso c i
Curso c iCurso c i
Curso c i
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Investigacion 1
Investigacion 1Investigacion 1
Investigacion 1
 
Clase 1- Programacion Lineal
Clase 1- Programacion LinealClase 1- Programacion Lineal
Clase 1- Programacion Lineal
 
P03.Programación en c para pics
P03.Programación en c para picsP03.Programación en c para pics
P03.Programación en c para pics
 
Elementos básicos del lenguaje
Elementos básicos del lenguajeElementos básicos del lenguaje
Elementos básicos del lenguaje
 
Introduccion a la programacion en c 1
Introduccion a la programacion en c 1Introduccion a la programacion en c 1
Introduccion a la programacion en c 1
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
 
Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)
 

Curso c ii

  • 1. Programación en C DATSI, FI, UPM José M. Peña [email_address] (Segunda Parte)
  • 2.
  • 3. Programación en C Modificadores de Ámbito
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Modificadores de Funciones Fichero1.c compilación Fichero1.o aux Impl G func Impl L enlace Fichero2.c compilación Fichero2.o aux Undef func Undef main Impl G EJECUTABLE
  • 11.
  • 12. Programación en C Punteros y Memoria Dinámica
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Programación en C Operadores de Bit
  • 22.
  • 23.
  • 24.
  • 25. Programación en C Preprocesador y Compilación
  • 26. Fase de Compilación .c Fichero Fuente Preprocesamiento .c Paso a Ensamblador .s .o Ensamblar Compilación .o .o .o .o EXE Enlazado .a Librerías Fichero Ejecutable
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Ejemplo: Fichero de Cabecera #ifndef _AUX_H_ #define _AUX_H_ <definiciones> #endif aux.h #include “aux.h” #include “aux.h” int main() { ... } Evita la redefinicion de funciones y variables
  • 37. Enlace de Ficheros .c extern int v; int main() {.h().} extern void k(); static h() {.k().} .c int k() {.l().} int l() {...} int v; .o 3A00: f 3A08: main 3B12: h v <undef> k <undef> .o 1600: k 17FF: l 1812: v EXE gcc -c gcc -c gcc -o Compilación Enlace
  • 38. Programación en C Librerías Estándar
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. Programación en C Argumentos del Programa
  • 48.
  • 49.
  • 50.