SlideShare ist ein Scribd-Unternehmen logo
1 von 10
TIPOS DE DATOS 
PUNTEROS
Conceptos de Punteros 
 es una variable que representa la posición (en vez 
del valor) de otro dato, tal como una variable o un 
elemento de un array. 
 proporcionan una forma de devolver varios datos 
desde una función a través de los argumentos de la 
función. 
 pasar funciones como argumentos de una función 
dada.
 El dato representado por v (es decir, el dato 
almacenado en las celdas de memoria de v) puede 
ser accedido mediante la expresión *pv. Por tanto, 
*pv y v representan el mismo dato. Si escribimos 
pv = &v y u = *pv, entonces u y v representan el 
mismo valor.
DECLARACION DE 
PUNTEROS 
 Un tipo de dato 
 El puntero solo podrá almacenar direcciones de 
memoria de variables del tipo especificado 
 Se pueden definir punteros de cualquier tipo: 
float *pf; 
char *pc; 
 Un identificador que siempre va antecedido del operador * 
pt almacena la 
dirección de x, se dice 
que pt apunta a x 
x 
pt 
int *p; 
1000 
1001 
1002 
1003 
1004 
1005 1000 
int *pt, x; 
x = 3; 
pt = &x; 
3
Relación entre dos variables enteras, sus correspondientes 
direcciones y sus punteros asociados. 
#include <stdio.h> 
main ( ) { 
SALIDA 
int u=3; 
U = 3 &u = 22ff44 pu = 22ff44 *pu = 3 
int v; 
V = 3 &v = 22ff40 pv = 3 *pv = 3 
int *pu; /*puntero a un entero*/ 
int *pv; /*puntero a un entero*/ 
pu = &u; /*Asigna dirección de u a pu*/ 
v = *pu; /*Asigna el valor de u a v*/ 
pv = &v /*Asig. Direc. de v a pv*/ 
printf ("n u = %d &u =%x pu =%x *pu = %d", u, &u, pu, *pu); 
printf("nn v = %d &v = %x pv = %x *pv = %d", v &v, pv, *pv); 
}
CONSULTANDO CONTENIDO 
 Si un puntero apunta a una variable 
 A través del puntero se puede llegar a conocer todo sobre la variable 
 Ejemplo: 
c = ‘A’ 
printf(“%c”, *pc1); 
*pc1 = ‘N’ 
printf(“%c”,c); 
Es equivalente a : 
printf(“%c”, c); 
Es equivalente a : 
c = ‘N’ 
Imprime ‘N’ pues c ya 
cambio 
char c, *pc1, *pc2; 
pc1 = &c; 
 Si quiero conocer la dirección, uso directamente el puntero 
printf(“%d”, pc1); //Imprimo la dir. Almacenada por pc1 
pc2 = pc1; //pc2 almacena la misma dir. que pc1 
 Si quiero conocer el contenido al que apunta un puntero, uso el 
operador *, sobre dicho puntero
EJERCICIO EN CLASE 
int x,y; 
int *p1,*p2; 
x = -42; 
y = 163; 
p1 = &x; 
p2 = &y; 
*p1 = 17; 
*p2 = x+5; 
*p1 = *p2; 
163 
1004 
1000 
1004 
1004 
Es equivalente a escribir 
x = y; 
p1 = p2; Esto indica que p1 
ahora apunta a la 
misma variable que p2 
p1 = NULL; 
p2 = NULL; Esto es equivalente a “encerar” el 
puntero, y decir que no apunta a ninguna 
variable 
1000 
1004 
1008 
1012 
x 
y 
p1 
p2 
-1272 
42 
22 
1000 
0 
1004 
0
ARITMETICA DE PUNTEROS 
 Los operadores + y – 
 Se pueden usar con punteros 
 Pero el significado de la operación cambia un poco 
 Si un entero ocupa 4 bytes, tomemos este ejemplo 
int x; 
int *p; 
p = &x; 
La suma indica que p se mueva 2 
“enteros” mas adelante 
Cada entero equivale a 4 bytes 
100 + 2*4 = 108 
 Si la dirección de x es un valor 100 y decimos 
p = p+2; 
 Que dirección almacena pi? 
102 108 104
EJERCICIO EN CLASE 
main(){ 
double Lista[3]; 
double *p,*p1,*p2; 
int k; 
Lista[0] = 1; 
Lista[1] = 1.1; 
Lista[2] = 1.2; 
p = Lista; 
p = p + 2; 
printf(“%d”, *p); 
p = p - 1; 
printf(“%d”, *p); 
p1 = Lista+2; 
p2 = &Lista[0]; 
k = p1-p2; 
printf(“%d”, k); 
} 
1000 
1008 
1016 
Lista[0] 
Lista[1] 
Lista[2] 
p 
p2 
p se mueve 2 p1 
desfases 
p retrocede un 
desfase 
Da el total de desfases 
entre p1 y p2 
1 
1.1 
1.2
Punteros 2012

Weitere ähnliche Inhalte

Was ist angesagt?

Concepto de integral indefinida
Concepto de integral indefinida Concepto de integral indefinida
Concepto de integral indefinida
Jose R Padrón
 
Apuntes apuntadores 2 a
Apuntes apuntadores 2 aApuntes apuntadores 2 a
Apuntes apuntadores 2 a
pabesacv
 
Tarea michael
Tarea michaelTarea michael
Tarea michael
tareasuft
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
cemayoral
 

Was ist angesagt? (20)

Suma y multiplicacion
Suma y multiplicacionSuma y multiplicacion
Suma y multiplicacion
 
Tema iiderivadas
Tema iiderivadasTema iiderivadas
Tema iiderivadas
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Funciones periodicas-y-acotadas
Funciones periodicas-y-acotadasFunciones periodicas-y-acotadas
Funciones periodicas-y-acotadas
 
Practicas de programacion 11 20
Practicas de programacion 11 20Practicas de programacion 11 20
Practicas de programacion 11 20
 
Integral indefinida
Integral indefinidaIntegral indefinida
Integral indefinida
 
Series Infinitas Convergentes y Divergentes en Geogebra CAS
Series Infinitas Convergentes y Divergentes en Geogebra CASSeries Infinitas Convergentes y Divergentes en Geogebra CAS
Series Infinitas Convergentes y Divergentes en Geogebra CAS
 
Tema 8 www.fresymetal.com
Tema 8 www.fresymetal.comTema 8 www.fresymetal.com
Tema 8 www.fresymetal.com
 
Arreglos
ArreglosArreglos
Arreglos
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
Solucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectoresSolucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectores
 
Concepto de integral indefinida
Concepto de integral indefinida Concepto de integral indefinida
Concepto de integral indefinida
 
Apuntes apuntadores 2 a
Apuntes apuntadores 2 aApuntes apuntadores 2 a
Apuntes apuntadores 2 a
 
Tarea michael
Tarea michaelTarea michael
Tarea michael
 
Integrales indefinida
Integrales indefinidaIntegrales indefinida
Integrales indefinida
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
 
Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra función
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
RAÍCES DE ECUACIONES
RAÍCES DE ECUACIONESRAÍCES DE ECUACIONES
RAÍCES DE ECUACIONES
 
REPORTE RUBI VERONICA J3 ISC A
REPORTE RUBI VERONICA J3 ISC AREPORTE RUBI VERONICA J3 ISC A
REPORTE RUBI VERONICA J3 ISC A
 

Andere mochten auch

Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
Boris Salleg
 

Andere mochten auch (6)

Variables
VariablesVariables
Variables
 
TIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLABTIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLAB
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Comandos de raptor
Comandos de raptorComandos de raptor
Comandos de raptor
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
 

Ähnlich wie Punteros 2012

PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
die_dex
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
luisabn
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
hassanbadredun
 
Tipos de Datos y su tipologia en contexto.ppt
Tipos de Datos y su tipologia en contexto.pptTipos de Datos y su tipologia en contexto.ppt
Tipos de Datos y su tipologia en contexto.ppt
ricardosusa5
 
Apuntadores, cadenas y estructuras
Apuntadores, cadenas y estructurasApuntadores, cadenas y estructuras
Apuntadores, cadenas y estructuras
Xendor Resendiz
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2
Wilian
 

Ähnlich wie Punteros 2012 (20)

PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Luis hernandez 22310621
Luis hernandez   22310621Luis hernandez   22310621
Luis hernandez 22310621
 
Punteros
PunterosPunteros
Punteros
 
00 Tipos de Datos.ppt
00 Tipos de Datos.ppt00 Tipos de Datos.ppt
00 Tipos de Datos.ppt
 
Matrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio CabelloMatrices Y Punteros - Sergio Cabello
Matrices Y Punteros - Sergio Cabello
 
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
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.tipos de datos
1.tipos de datos1.tipos de datos
1.tipos de datos
 
Tipos de Datos y su tipologia en contexto.ppt
Tipos de Datos y su tipologia en contexto.pptTipos de Datos y su tipologia en contexto.ppt
Tipos de Datos y su tipologia en contexto.ppt
 
Puenteros en c++
Puenteros en c++Puenteros en c++
Puenteros en c++
 
Apuntadores, cadenas y estructuras
Apuntadores, cadenas y estructurasApuntadores, cadenas y estructuras
Apuntadores, cadenas y estructuras
 
Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Punteros2
Punteros2Punteros2
Punteros2
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 

Kürzlich hochgeladen

TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Kürzlich hochgeladen (20)

Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 

Punteros 2012

  • 1. TIPOS DE DATOS PUNTEROS
  • 2. Conceptos de Punteros  es una variable que representa la posición (en vez del valor) de otro dato, tal como una variable o un elemento de un array.  proporcionan una forma de devolver varios datos desde una función a través de los argumentos de la función.  pasar funciones como argumentos de una función dada.
  • 3.  El dato representado por v (es decir, el dato almacenado en las celdas de memoria de v) puede ser accedido mediante la expresión *pv. Por tanto, *pv y v representan el mismo dato. Si escribimos pv = &v y u = *pv, entonces u y v representan el mismo valor.
  • 4. DECLARACION DE PUNTEROS  Un tipo de dato  El puntero solo podrá almacenar direcciones de memoria de variables del tipo especificado  Se pueden definir punteros de cualquier tipo: float *pf; char *pc;  Un identificador que siempre va antecedido del operador * pt almacena la dirección de x, se dice que pt apunta a x x pt int *p; 1000 1001 1002 1003 1004 1005 1000 int *pt, x; x = 3; pt = &x; 3
  • 5. Relación entre dos variables enteras, sus correspondientes direcciones y sus punteros asociados. #include <stdio.h> main ( ) { SALIDA int u=3; U = 3 &u = 22ff44 pu = 22ff44 *pu = 3 int v; V = 3 &v = 22ff40 pv = 3 *pv = 3 int *pu; /*puntero a un entero*/ int *pv; /*puntero a un entero*/ pu = &u; /*Asigna dirección de u a pu*/ v = *pu; /*Asigna el valor de u a v*/ pv = &v /*Asig. Direc. de v a pv*/ printf ("n u = %d &u =%x pu =%x *pu = %d", u, &u, pu, *pu); printf("nn v = %d &v = %x pv = %x *pv = %d", v &v, pv, *pv); }
  • 6. CONSULTANDO CONTENIDO  Si un puntero apunta a una variable  A través del puntero se puede llegar a conocer todo sobre la variable  Ejemplo: c = ‘A’ printf(“%c”, *pc1); *pc1 = ‘N’ printf(“%c”,c); Es equivalente a : printf(“%c”, c); Es equivalente a : c = ‘N’ Imprime ‘N’ pues c ya cambio char c, *pc1, *pc2; pc1 = &c;  Si quiero conocer la dirección, uso directamente el puntero printf(“%d”, pc1); //Imprimo la dir. Almacenada por pc1 pc2 = pc1; //pc2 almacena la misma dir. que pc1  Si quiero conocer el contenido al que apunta un puntero, uso el operador *, sobre dicho puntero
  • 7. EJERCICIO EN CLASE int x,y; int *p1,*p2; x = -42; y = 163; p1 = &x; p2 = &y; *p1 = 17; *p2 = x+5; *p1 = *p2; 163 1004 1000 1004 1004 Es equivalente a escribir x = y; p1 = p2; Esto indica que p1 ahora apunta a la misma variable que p2 p1 = NULL; p2 = NULL; Esto es equivalente a “encerar” el puntero, y decir que no apunta a ninguna variable 1000 1004 1008 1012 x y p1 p2 -1272 42 22 1000 0 1004 0
  • 8. ARITMETICA DE PUNTEROS  Los operadores + y –  Se pueden usar con punteros  Pero el significado de la operación cambia un poco  Si un entero ocupa 4 bytes, tomemos este ejemplo int x; int *p; p = &x; La suma indica que p se mueva 2 “enteros” mas adelante Cada entero equivale a 4 bytes 100 + 2*4 = 108  Si la dirección de x es un valor 100 y decimos p = p+2;  Que dirección almacena pi? 102 108 104
  • 9. EJERCICIO EN CLASE main(){ double Lista[3]; double *p,*p1,*p2; int k; Lista[0] = 1; Lista[1] = 1.1; Lista[2] = 1.2; p = Lista; p = p + 2; printf(“%d”, *p); p = p - 1; printf(“%d”, *p); p1 = Lista+2; p2 = &Lista[0]; k = p1-p2; printf(“%d”, k); } 1000 1008 1016 Lista[0] Lista[1] Lista[2] p p2 p se mueve 2 p1 desfases p retrocede un desfase Da el total de desfases entre p1 y p2 1 1.1 1.2