SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
UNIVERSIDADE DA CORUÑA




            El lenguaje de programación C++




                    Fernando Bellas Permuy
Departamento de Tecnologías de la Información y las Comunicaciones (TIC)
                       Universidad de A Coruña
                     http://www.tic.udc.es/~fbellas
                            fbellas@udc.es
Introducción
• C++ extiende el lenguaje de programación C con conceptos de
  Orientación a Objetos.

• Es un lenguaje compilado.

• Índice:
  • Revisión del lenguaje C.

  • Mejoras (no OO) introducidas por C++.

  • Clases.

  • La herramienta “make” en Unix.

  • Herencia.

  • Sobrecarga de operadores.

  • Plantillas (templates).

  • Excepciones.

  • La librería estándar de C++.

  • Bibliografía.




                                                                1
Nociones básicas de C (1)
• Tipos de datos básicos.
          Tipo         Indentificador        Ejemplo de valores    Modificadores

Caracteres            char              'a', '9', '#', 10         unsigned
Enteros               int               23, -34, 0                long, short,
                                                                  unsigned
Reales                float             3, 3.0, 3e10
Reales (doble pre-    double            3, 3.0, 3e600             long
cisión)
“Booleans”            int               0 (false), != 0 (true)



• Operadores aritméticos: =, +, -, %, /, ++, --, y variantes de =

• Variables: locales, globales.

             #include <stdio.h>

             float e; /* Variable global */

             int main ()
             {
                 float v, t; /* Variables locales */

                 v = 30; /* Velocidad */
                 t = 5; /* Tiempo */

                 e = v * t;
                 printf("Velocidad: %fnTiempo: %fn", v, t);
                 printf("Espacio recorrido: %fn", e);

                 return 0;
             }




                                                                                   2
Nociones básicas de C (y 2)
• Operadores ++, --, y variantes de =

            i = 4;                        i = 4;
            j = 2 * (i++);                j = 2 * (++i);
            /* i = 5, j = 8 */            /* i=5, j = 10 */

                        i = 4;
                        i %= 3; /* i = i % 3; */
                        i += 4; /* i = i + 4; */
                        /* i = 5 */



• Entrada salida con printf/scanf y similares.

 #include <stdio.h>

 int main ()
 {
     float v, t, e;

     printf("Velocidad: ");
     scanf("%f", &v);
     printf("Tiempo: ");
     scanf("%f", &t);
     e = v * t;

     printf("Velocidad: %5.2f; Tiempo: %5.2f; Espacio: %5.2fn",v,t,e);

     return 0;
 }



  • Caracteres de control en printf, scanf: d, o, x, c, s, f, e, p.

• En C++ hay una alternativa mejor: los streams de entrada/sal-
  ida.




                                                                          3
Control de flujo (1)
• Operadores relacionales: >, >=, <, <=, ==, !=
• Operadores lógicos: &&, ||, !
• if.. else..
                       if (condición) {
                           << sentencias >>
                       } else {
                           << sentencias >>
                       }

• switch-case-default
               switch (exp) {
                   case A:
                       << instrucciones >>
                       break;
                   case B:
                       << instrucciones >>
                       break;
                   ...
                   default:
                       << instrucciones por defecto >>
               }




            switch (letra) {
                case 'a':
                case 'e':
                case 'i':
                case 'o':
                case 'u': printf("Es una vocaln");
                          break;
                case 'ñ': printf("Nuestra querida ñn");
                          break;
                default: printf("Cualquier otro caracter");
            }




                                                              4
Control de flujo (y 2)
• Bucle while

                      while (condición) {
                         << instrucciones >>
                      }


• Bucle do.. while

                      do {
                         << instrucciones >>
                      } while (condición)

• Bucle for
                     for (inic; cond; incr) {
                        << instrucciones >>
                     }



                     for (i=1; i<=10; i++) {
                         printf(“%in“, d);
                     }




                     Operadores de bit
• & (AND), | (OR), ~ (NOT), ^ (XOR), >> (shift right), << (shift
  left).




                                                                   5
Estructuras de datos estáticas (1)
• Vectores.
       int vector[] = {1, 2, 3, 4, 5};
       int vector2[5] = {1, 2, 3, 4, 5};
       int matriz[10][10];
       char matriz3[4][5][6];

       int main ()
       {
           float matriz2[][3] = { {1, 2, 3}, {4, 5, 6} };

              int i, j;
              for (i=0; i<2; i++) {
                  for (j=0; j<3; j++) {
                       printf("%fn", matriz2[i][j]);
                  }
              }
              return 0;
       }


• Registros o Estructuras.
     struct nombre {        struct TipoPunto {   punto.x = 1;
         Tipo1 campo1;          int x;           punto.y = 2;
         Tipo2 campo2;          int y;
         ...                } punto;
         TipoN campoN;
     } variable;


• Uniones.
       union Ejemplo {          struct FiguraColoreada {
           char caracter;           int color;
           int entero;              int tipoFigura;
       };                           union {
                                        struct Esfera e;
                                        struct Segmento s;
                                    } figura;
                                }




                                                                6
Estructuras de datos estáticas (y 2)
• Tipos definidos por el usuario (typedef).

                   typedef unsigned char TipoByte;

                   typedef struct {
                       int x;
                       int y;
                   } TipoPunto;


• Enumeraciones.

  enum Dia { Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo};




                                                                            7
Punteros (1)
• Un puntero es una variable cuyo contenido es una dirección
  de memoria.
• Operadores: &, *, ->
• Ejemplos:
           int x;                 TipoPunto* pPunto;
           int* px;
                                  pPunto->x = 1;
           x = 1;                 pPunto->y = 2;
           px = &x;
           *px = 2; /* x = 2 */


• Punteros y matrices.
          int i;
          int v[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
          int* p;

          for (i=0; i<10; i++) {
              printf("%dn", v[i]);
          }

          for (i=0, p=v; i<10; i++, p++) {
              printf("%dn", *p);
          }

          for (p=v; p != &(v[10]); p++) {
              printf("%dn", *p);
          }




                                                               8
Punteros (y 2)

• Cadenas de caracteres: Vectores de caracteres terminados en 0
  ('0').
            #include <stdio.h>

            char* mensaje = "hola";

            int main ()
            {
                char cadena[10];
                char* p = cadena;
                unsigned int longitud = 0;

                puts(mensaje);
                scanf("%9s", cadena);

                while (*p != 0) {
                    longitud++;
                    p++;
                }
                printf("Longitud: %dn", longitud);
                return 0;
            }




                                                                  9

Mais conteúdo relacionado

Mais procurados

Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
victdiazm
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
die_dex
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
luisabn
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
Diego Maxdj Chicaiza
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
Johanna Marin
 
Clase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_cClase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_c
kikeMerck
 

Mais procurados (20)

Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
 
6 excepciones
6 excepciones6 excepciones
6 excepciones
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Gestión Dinámica de la Memoria
Gestión Dinámica de la MemoriaGestión Dinámica de la Memoria
Gestión Dinámica de la Memoria
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
 
Tipos basicos de java
Tipos basicos de javaTipos basicos de java
Tipos basicos de java
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Recursividad
RecursividadRecursividad
Recursividad
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Java básico
Java  básicoJava  básico
Java básico
 
02 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 302 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 3
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Clase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_cClase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_c
 

Destaque

Manual básico de programación en c++ prev
Manual básico de programación en c++ prevManual básico de programación en c++ prev
Manual básico de programación en c++ prev
jtk1
 
El lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprevEl lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprev
jtk1
 
El lenguaje de programación c#prev
El lenguaje de programación c#prevEl lenguaje de programación c#prev
El lenguaje de programación c#prev
jtk1
 
Programación en c y c++ prev
Programación en c y c++ prevProgramación en c y c++ prev
Programación en c y c++ prev
jtk1
 
(Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++ (Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++
Eli Diaz
 
Manual de lenguaje c++prev
Manual de lenguaje c++prevManual de lenguaje c++prev
Manual de lenguaje c++prev
jtk1
 
Lenguaje de programacion java prev
Lenguaje de programacion java prevLenguaje de programacion java prev
Lenguaje de programacion java prev
jtk1
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
jtk1
 
Misterios d excel pre
Misterios d excel preMisterios d excel pre
Misterios d excel pre
jtk1
 
Curso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevCurso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prev
jtk1
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prev
jtk1
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
jtk1
 

Destaque (13)

Manual básico de programación en c++ prev
Manual básico de programación en c++ prevManual básico de programación en c++ prev
Manual básico de programación en c++ prev
 
El lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprevEl lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprev
 
El lenguaje de programación c#prev
El lenguaje de programación c#prevEl lenguaje de programación c#prev
El lenguaje de programación c#prev
 
Programación en c y c++ prev
Programación en c y c++ prevProgramación en c y c++ prev
Programación en c y c++ prev
 
(Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++ (Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++
 
Manual de lenguaje c++prev
Manual de lenguaje c++prevManual de lenguaje c++prev
Manual de lenguaje c++prev
 
Lenguaje de programacion java prev
Lenguaje de programacion java prevLenguaje de programacion java prev
Lenguaje de programacion java prev
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
 
Misterios d excel pre
Misterios d excel preMisterios d excel pre
Misterios d excel pre
 
Curso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevCurso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prev
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prev
 
Actividad modulo1
Actividad modulo1Actividad modulo1
Actividad modulo1
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
 

Semelhante a El lenguaje de programacion c++ prev

Semelhante a El lenguaje de programacion c++ prev (20)

Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
Arreglos
ArreglosArreglos
Arreglos
 
programación Milton.pptx
programación Milton.pptxprogramación Milton.pptx
programación Milton.pptx
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Arreglos
ArreglosArreglos
Arreglos
 
Programación C++
Programación C++Programación C++
Programación C++
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
Python workshop
Python workshopPython workshop
Python workshop
 
Matrices
MatricesMatrices
Matrices
 
Introducción a C SHARP
Introducción a C SHARPIntroducción a C SHARP
Introducción a C SHARP
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Ejemplos c
Ejemplos cEjemplos c
Ejemplos c
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 

Mais de jtk1

Java schaum pre
Java schaum preJava schaum pre
Java schaum pre
jtk1
 
Programar java 2pre
Programar java 2preProgramar java 2pre
Programar java 2pre
jtk1
 
Serlets java pre
Serlets java preSerlets java pre
Serlets java pre
jtk1
 
Portada java 2
Portada java 2Portada java 2
Portada java 2
jtk1
 
Piensa en java per
Piensa en java perPiensa en java per
Piensa en java per
jtk1
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
jtk1
 
Java jedi prev
Java jedi prevJava jedi prev
Java jedi prev
jtk1
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prev
jtk1
 
Java ferca
Java fercaJava ferca
Java ferca
jtk1
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 pre
jtk1
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
jtk1
 
Java angel estevan pre
Java angel estevan preJava angel estevan pre
Java angel estevan pre
jtk1
 
Java 3dpre
Java 3dpreJava 3dpre
Java 3dpre
jtk1
 
Java 2d
Java 2dJava 2d
Java 2d
jtk1
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
jtk1
 
Guia de iniciación en java prev
Guia de iniciación en java prevGuia de iniciación en java prev
Guia de iniciación en java prev
jtk1
 
Aprende java como si estuviera en primero pre
Aprende java como si estuviera en primero preAprende java como si estuviera en primero pre
Aprende java como si estuviera en primero pre
jtk1
 
52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev
jtk1
 
Serlets y jsp prev
Serlets y jsp prevSerlets y jsp prev
Serlets y jsp prev
jtk1
 
Serlets y jsp pre
Serlets y jsp preSerlets y jsp pre
Serlets y jsp pre
jtk1
 

Mais de jtk1 (20)

Java schaum pre
Java schaum preJava schaum pre
Java schaum pre
 
Programar java 2pre
Programar java 2preProgramar java 2pre
Programar java 2pre
 
Serlets java pre
Serlets java preSerlets java pre
Serlets java pre
 
Portada java 2
Portada java 2Portada java 2
Portada java 2
 
Piensa en java per
Piensa en java perPiensa en java per
Piensa en java per
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java jedi prev
Java jedi prevJava jedi prev
Java jedi prev
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prev
 
Java ferca
Java fercaJava ferca
Java ferca
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 pre
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Java angel estevan pre
Java angel estevan preJava angel estevan pre
Java angel estevan pre
 
Java 3dpre
Java 3dpreJava 3dpre
Java 3dpre
 
Java 2d
Java 2dJava 2d
Java 2d
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
 
Guia de iniciación en java prev
Guia de iniciación en java prevGuia de iniciación en java prev
Guia de iniciación en java prev
 
Aprende java como si estuviera en primero pre
Aprende java como si estuviera en primero preAprende java como si estuviera en primero pre
Aprende java como si estuviera en primero pre
 
52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev
 
Serlets y jsp prev
Serlets y jsp prevSerlets y jsp prev
Serlets y jsp prev
 
Serlets y jsp pre
Serlets y jsp preSerlets y jsp pre
Serlets y jsp pre
 

El lenguaje de programacion c++ prev

  • 1.
  • 2. UNIVERSIDADE DA CORUÑA El lenguaje de programación C++ Fernando Bellas Permuy Departamento de Tecnologías de la Información y las Comunicaciones (TIC) Universidad de A Coruña http://www.tic.udc.es/~fbellas fbellas@udc.es
  • 3. Introducción • C++ extiende el lenguaje de programación C con conceptos de Orientación a Objetos. • Es un lenguaje compilado. • Índice: • Revisión del lenguaje C. • Mejoras (no OO) introducidas por C++. • Clases. • La herramienta “make” en Unix. • Herencia. • Sobrecarga de operadores. • Plantillas (templates). • Excepciones. • La librería estándar de C++. • Bibliografía. 1
  • 4. Nociones básicas de C (1) • Tipos de datos básicos. Tipo Indentificador Ejemplo de valores Modificadores Caracteres char 'a', '9', '#', 10 unsigned Enteros int 23, -34, 0 long, short, unsigned Reales float 3, 3.0, 3e10 Reales (doble pre- double 3, 3.0, 3e600 long cisión) “Booleans” int 0 (false), != 0 (true) • Operadores aritméticos: =, +, -, %, /, ++, --, y variantes de = • Variables: locales, globales. #include <stdio.h> float e; /* Variable global */ int main () { float v, t; /* Variables locales */ v = 30; /* Velocidad */ t = 5; /* Tiempo */ e = v * t; printf("Velocidad: %fnTiempo: %fn", v, t); printf("Espacio recorrido: %fn", e); return 0; } 2
  • 5. Nociones básicas de C (y 2) • Operadores ++, --, y variantes de = i = 4; i = 4; j = 2 * (i++); j = 2 * (++i); /* i = 5, j = 8 */ /* i=5, j = 10 */ i = 4; i %= 3; /* i = i % 3; */ i += 4; /* i = i + 4; */ /* i = 5 */ • Entrada salida con printf/scanf y similares. #include <stdio.h> int main () { float v, t, e; printf("Velocidad: "); scanf("%f", &v); printf("Tiempo: "); scanf("%f", &t); e = v * t; printf("Velocidad: %5.2f; Tiempo: %5.2f; Espacio: %5.2fn",v,t,e); return 0; } • Caracteres de control en printf, scanf: d, o, x, c, s, f, e, p. • En C++ hay una alternativa mejor: los streams de entrada/sal- ida. 3
  • 6. Control de flujo (1) • Operadores relacionales: >, >=, <, <=, ==, != • Operadores lógicos: &&, ||, ! • if.. else.. if (condición) { << sentencias >> } else { << sentencias >> } • switch-case-default switch (exp) { case A: << instrucciones >> break; case B: << instrucciones >> break; ... default: << instrucciones por defecto >> } switch (letra) { case 'a': case 'e': case 'i': case 'o': case 'u': printf("Es una vocaln"); break; case 'ñ': printf("Nuestra querida ñn"); break; default: printf("Cualquier otro caracter"); } 4
  • 7. Control de flujo (y 2) • Bucle while while (condición) { << instrucciones >> } • Bucle do.. while do { << instrucciones >> } while (condición) • Bucle for for (inic; cond; incr) { << instrucciones >> } for (i=1; i<=10; i++) { printf(“%in“, d); } Operadores de bit • & (AND), | (OR), ~ (NOT), ^ (XOR), >> (shift right), << (shift left). 5
  • 8. Estructuras de datos estáticas (1) • Vectores. int vector[] = {1, 2, 3, 4, 5}; int vector2[5] = {1, 2, 3, 4, 5}; int matriz[10][10]; char matriz3[4][5][6]; int main () { float matriz2[][3] = { {1, 2, 3}, {4, 5, 6} }; int i, j; for (i=0; i<2; i++) { for (j=0; j<3; j++) { printf("%fn", matriz2[i][j]); } } return 0; } • Registros o Estructuras. struct nombre { struct TipoPunto { punto.x = 1; Tipo1 campo1; int x; punto.y = 2; Tipo2 campo2; int y; ... } punto; TipoN campoN; } variable; • Uniones. union Ejemplo { struct FiguraColoreada { char caracter; int color; int entero; int tipoFigura; }; union { struct Esfera e; struct Segmento s; } figura; } 6
  • 9. Estructuras de datos estáticas (y 2) • Tipos definidos por el usuario (typedef). typedef unsigned char TipoByte; typedef struct { int x; int y; } TipoPunto; • Enumeraciones. enum Dia { Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo}; 7
  • 10. Punteros (1) • Un puntero es una variable cuyo contenido es una dirección de memoria. • Operadores: &, *, -> • Ejemplos: int x; TipoPunto* pPunto; int* px; pPunto->x = 1; x = 1; pPunto->y = 2; px = &x; *px = 2; /* x = 2 */ • Punteros y matrices. int i; int v[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int* p; for (i=0; i<10; i++) { printf("%dn", v[i]); } for (i=0, p=v; i<10; i++, p++) { printf("%dn", *p); } for (p=v; p != &(v[10]); p++) { printf("%dn", *p); } 8
  • 11. Punteros (y 2) • Cadenas de caracteres: Vectores de caracteres terminados en 0 ('0'). #include <stdio.h> char* mensaje = "hola"; int main () { char cadena[10]; char* p = cadena; unsigned int longitud = 0; puts(mensaje); scanf("%9s", cadena); while (*p != 0) { longitud++; p++; } printf("Longitud: %dn", longitud); return 0; } 9