Apuntes apuntadores 2 a
Transcript of 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.
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.
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;
}
}
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.
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.
#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.