Apuntes apuntadores 2 a

6
COMO UTILIZAR CONST CON APUNTADORES O EXISTEN 4 OPCIONES PARA PASAR UN APUNTADORA UNA FUNCION O UN PAUNTADOR NO CONSTANTE A DATOS NO CONSTANTES. O UN APUNTADOR CONSTANTE A DATOS NO CONSTANTES. O UN APUNTADOR NO CONSTANTE A DATOS CONSTTANTES. O UN APUNTADOR CONSTANTE A DATOS COSTANTES.

Transcript of Apuntes apuntadores 2 a

Page 1: Apuntes apuntadores 2 a

COMO UTILIZAR CONST CON APUNTADORES

O EXISTEN 4 OPCIONES PARA PASAR UN APUNTADORA UNA FUNCION

O UN PAUNTADOR NO CONSTANTE A DATOS NO CONSTANTES.

O UN APUNTADOR CONSTANTE A DATOS NO CONSTANTES.

O UN APUNTADOR NO CONSTANTE A DATOS CONSTTANTES.

O UN APUNTADOR CONSTANTE A DATOS COSTANTES.

Page 2: Apuntes apuntadores 2 a

NIVEL DE ACCESO DE DATOS

O EL NIVEL MAS ALTO DE ACCESO SE CONSIGUEMEDIANTE UN APUNTADOR NO CONSTANTE ADATOS NO CONSTANTES. EN ESTE CASO, LOSDATOS PUEDEN SER MODIFICADOS A TRAVESDE UN APUNTADOR DESREFERENCIADO, Y ELAPUNTADOR PUEDE SER MODIFICADO PARASEÑALAR A OTROS ELEMENTOS DE DATOS.

O UN APUNTADOR NO CONSTANTE A DATOS NOCONSTANTES NO INCLUYE LA FUNCION CONST.TAL APUNTADOR PUDIERA SER UTILIZADO PARARECIBIR UNA CADENA COMO ARGUMENTOAUNA FUNCION QUE UTILIZA ARITMETICA DEAPUNTADOR PARA PROCESAR YPOSIBLEMENTE PARA MODIFICARLA CADACARÁCTER DENTRO DE LA CADENA.

O UN APUNTADOR NO CONSTANTE A DATOSCONSTANTES ES UN APUNTADOR QUE PUEDESER MODIFICADO PARA APUNTAR A CUALQUIERELEMENTO DE DATOS DEL TIPOAPROPIADO, ERO NO PUEDEN SERMODIFICADOS LOS DATOS HACIA LOS CUALESAPUNTA.

Page 3: Apuntes apuntadores 2 a

EJEMPLO DE APUNTADOR NO CONSTANTE A DATOS NO CONSTANTES

EN ESTE EJEMPLO LA FUNCION

CONVERTIR, DECLARA COMO SU

ARGUMENTO UN APUNTADOR NO

CONSTANTE A DATOS NO

CONSTANES, LLAMADO s (CHAR *S). LA

FUNCION PROCESA LA CADENA S, SE

CONVIERTE A SU LETRA EN MAYUSCULA

CORRESPONDIENTE, A a Z, UTILIZANDO UN

CALCULO BASADO EN SU CODIGO ASCII, DE

LO CONTRARIO ES PASADO POR ALTO, Y ES

PROCESADO EL SIGUIENTE CARÁCTER EN

LA CADENA. NOTE QUE TODAS LAS ETRAS

MAYUSCULAS EN EL CONJUNTO DE

CARACTERES ASCII TIENEN VALORES

ENTEROS QUE SON EQUIVALENTES EN

VALORES ASCII A SUS LETRAS

CORRESPONDIENTE EN MINUSCULAS

MENOS 32

#include "stdio.h"

#include "conio.h"

#include "iostream"

using namespace std;

void convertir(char *);

main()

{

system ("cls");

char string[]="caracteres";

cout<<"la cadena antes de la conversion es:\n";

cout<<string;

convertir(string);

cout<<"\nla cadena despues de la conversion es:\n";

cout<<string;

system("pause");

return 0;

}

void convertir(char *s)

{

while (*s !='\0')

{

if (*s >='a' && *s<='z')

{

*s -=32;

++s;

}

}

Page 4: Apuntes apuntadores 2 a

EJEMPLO DE APUNTADOR NO CONSTANTE A DATOS CONSTANTES

#include "stdio.h"

#include "conio.h"

#include "iostream"

using namespace std;

void imprimircarac(const char *);

main()

{

system("cls");

char string[]="imprimir caracter por caracter la cadena";

imprimircarac(string);

cout<<("\n");

system("pause");

return 0;

}

void imprimircarac(const char *s)

{

for ( ;*s!='\0'; s++)

{

cout<<*s;

}

}

EN ESTE EJEMPLO LA FUNCION

IMPRIMIRCARAC, DECLARA LOS

PARAMETROS DEL TIPO CONST CHAR * . LA

DECLARACION SE LEE DE DERECHA A

IZQUIERDA DE LA FORMA “S” ES UN

APUNTADOR A UNA CONSTANTE DE

CARÁCTER. EL CUERPO DE LA FUNCION

UTILIZA UNA ESTRUCTURA FOR, PARA

EXTRAER CADA CARÁCTER DE LA

CADENA, HASTA QUE SE ENCUENTRE EL

CARÁCTER NULL. DESPUES DE HABER

IMPRESO CADA CARÁCTER, EL APUNTADOR

S ES INCREMENTADO, PARA QUE APUNTE AL

SIGUIENTE CARÁCTER DENTRO DE LA

CADENA.

Page 5: Apuntes apuntadores 2 a

EJEMPLO DE APUNTADOR CONSTANTE A DATOS NO CONSTANTES

#include "stdio.h"

#include "conio.h"

#include "iostream"

using namespace std;

main()

{

system ("cls");

int x, y;

int * const apunta =&x;

apunta = &y;

system("pause");

return 0;

}

EN ESTE EJEMPLO SE INTENTA MODIFICAR

UN APUNTADOR CONSTANTE. EL

APUNTADOR APUNTA SE DECLARA SER DEL

TIPO INT * CONST. LA DECLARACION SE LEE

DE DERECHA A IZQUIERDA COMO APUNTA

ES UN APUNTADOR CONSTANTE A UN

ENTERO. EL APUNTADOR SE INICIALIZA CON

LA DIRECCION DE LA VARIABLE ENTERA X.

EL PROGRAMA INTENTA ASIGNAR LA

DIRECCION DE Y A APUNTA, PERO SE

GENERA UN MENSAJE DE ERROR. YA QUE

LOS APUNTADORES CONSTANTES A DATOS

CONSTANTES. SIEMPRE PUNTA A LA MISMA

DIRECCION D MEMORIA, Y LOS DATOS NO

PIEDEN SER MODIFICADOS.

Page 6: Apuntes apuntadores 2 a

#include "stdio.h"

#include "conio.h"

#include "iostream"

using namespace std;

main()

{

system ("cls");

int x=5, y;

const int * const apunta =&x;

*apunta=7;

apunta = &y;

system("pause");

return 0;

}

EJEMPLO DE APUNTADOR CONSTANTE A DATOS CONSTANTES

EN ESTE EJEMPLO DECLARA A LA VARIABLE

DE APUNTADOR APUNTA SER DEL TIPO

CONST INT * CONST. ESTA DECLARACION SE

LEE DE DERECHA A IZQUIERDA COMO

APUNTA ES UN APUNTADOR CONSTANTE A

UN ENTERO CONSTANTE. GENERA ERROR

YA QUE LOS APUNTADORES CONSTANTES A

DATOS CONSTANTES. SIEMPRE PUNTA A LA

MISMA DIRECCION DE MEMORIA, LOS

DATOS Y DIRECCION NO PIEDEN SER

MODIFICADOS.