SlideShare uma empresa Scribd logo
1 de 50
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]

Mais conteúdo relacionado

Mais procurados (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
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
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
 

Destaque

Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++ernestre
 
Dev c presentacion ahmad
Dev c presentacion ahmadDev c presentacion ahmad
Dev c presentacion ahmadjonnysins69
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en CRonny Parra
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++ivanjvic
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CRonny Parra
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++cemayoral
 

Destaque (10)

Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++
 
Dev c presentacion ahmad
Dev c presentacion ahmadDev c presentacion ahmad
Dev c presentacion ahmad
 
Intro dev c 2011
Intro dev c 2011Intro dev c 2011
Intro dev c 2011
 
Dev-C++
Dev-C++ Dev-C++
Dev-C++
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
 
CARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE CCARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE C
 
Manual del dev c++
Manual del dev c++Manual del dev c++
Manual del dev c++
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 

Semelhante a Curso C Ii

Semelhante 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)
 

Mais de yuli

Administracion
AdministracionAdministracion
Administracionyuli
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidadyuli
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidadyuli
 
Administracion
AdministracionAdministracion
Administracionyuli
 
SociologíA
SociologíASociologíA
SociologíAyuli
 
SociologíA
SociologíASociologíA
SociologíAyuli
 
Administracion
AdministracionAdministracion
Administracionyuli
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidadyuli
 

Mais de yuli (8)

Administracion
AdministracionAdministracion
Administracion
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidad
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidad
 
Administracion
AdministracionAdministracion
Administracion
 
SociologíA
SociologíASociologíA
SociologíA
 
SociologíA
SociologíASociologíA
SociologíA
 
Administracion
AdministracionAdministracion
Administracion
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidad
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (13)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

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.