Documente Academic
Documente Profesional
Documente Cultură
Agosto 2016
Algoritmos y Estructuras de Datos
Apuntadores en C++
Apuntadores en C++
1 int x;
Apuntadores en C++
Apuntadores en C++
Operador contenido (*)
Este operador nos permite obtener el contenido de una
direccin.
Apuntadores en C++
Apuntadores en C++
1 / / a p o i n t e r t o an i n t e g e r v alue
2 int i Ptr ;
3
4 / / a p o i n t e r t o a double v alue
5 double d P t r ;
6
7 / / d e c l a r e two p o i n t e r s t o i n t e g e r v a r i a b l e s
8 int iPtr4 , iPtr5 ;
Algoritmos y Estructuras de Datos
Apuntadores en C++
1 i n t doSomething ( ) ;
Algoritmos y Estructuras de Datos
Apuntadores en C++
1 i n t v alue = 5 ;
2 i n t p t r = &v alue ; / / i n i t i a l i z e p t r w i t h address
o f v a r i a b l e v alue
Algoritmos y Estructuras de Datos
Apuntadores en C++
Apuntadores en C++
1 int iValue = 5;
2 double dValue = 7 . 0 ;
3
4 i n t i P t r = &i V a l u e ; / / ok
5 double d P t r = &dValue ; / / ok
6 / / wrong i n t p o i n t e r cannot p o i n t t o t h e address
o f a double v a r i a b l e
7 i P t r = &dValue ;
8 / / wrong double p o i n t e r cannot p o i n t t o t h e
address o f an i n t v a r i a b l e
9 d P t r = &i V a l u e ;
Algoritmos y Estructuras de Datos
Apuntadores en C++
1 / / n o t okay , t r e a t e d as a s s i g n i n g an i n t e g e r
literal
2 double d P t r = 0x0012FF7C ;
Algoritmos y Estructuras de Datos
Apuntadores en C++
Apuntadores nulos
Apuntadores en C++
Apuntadores nulos
1 double p t r ( 0 ) ;
2
3 if ( ptr )
4 c out << "ptr is pointing to a double value." ;
5 else
6 c out << "ptr is a null pointer." ;
Algoritmos y Estructuras de Datos
Apuntadores en C++
Apuntadores en C++
Apuntadores en C++
Apuntadores nulos
Apuntadores en C++
Arreglos y apuntadores
Una variable de tipo arreglo almancena la direccin de
memoria del primer elemento del arreglo.
7 / / p r i n t t h e v alue o f t h e a r r a y v a r i a b l e
8 s t d : : c out << "The array has address: " << a r r a y
<< \n ;
9
10 / / p r i n t address o f t h e a r r a y elements
Algoritmos y Estructuras de Datos
Apuntadores en C++
Arreglos y apuntadores
Se debe tener cuidado al hacer uso de los arreglos y
apuntadores porque no son lo mismo.
Apuntadores en C++
Arreglos y apuntadores
1 void p r i n t S i z e ( i n t a r r a y [ ] ) ;
2 void p r i n t S i z e ( i n t a r r a y ) ;
Algoritmos y Estructuras de Datos
Apuntadores en C++
Arreglos y apuntadores
Apuntadores en C++
Arreglos y apuntadores
Apuntadores en C++
Aritmtica de apuntadores
Apuntadores en C++
Aritmtica de apuntadores
Apuntadores en C++
Aritmtica de apuntadores
El operador * tiene preferencia sobre el operador +.
Apuntadores en C++
Aritmtica de apuntadores
1 const i n t a r r a y L e n g t h = 7 ;
2 char name [ a r r a y L e n g t h ] = "Mollie" ;
3 i n t numVowels ( 0 ) ;
4 f o r ( char p t r = name ; p t r < name + a r r a y L e n g t h ; ++ p t r ) {
5 switch ( p t r ) {
6 case A :
7 case a :
8 case E :
9 case e :
10 case I :
11 case i :
12 case O :
13 case o :
14 case U :
15 case u :
16 numVowels ++;
17 }
18 }
19 c o u t << name << " has " << numVowels << " vowels.\n" ;