1. 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.
2. NIVEL DE ACCESO DE DATOS
O EL NIVEL MAS ALTO DE ACCESO SE CONSIGUE
MEDIANTE UN APUNTADOR NO CONSTANTE A
DATOS NO CONSTANTES. EN ESTE CASO, LOS
DATOS PUEDEN SER MODIFICADOS A TRAVES
DE UN APUNTADOR DESREFERENCIADO, Y EL
APUNTADOR PUEDE SER MODIFICADO PARA
SEÑALAR A OTROS ELEMENTOS DE DATOS.
O UN APUNTADOR NO CONSTANTE A DATOS NO
CONSTANTES NO INCLUYE LA FUNCION CONST.
TAL APUNTADOR PUDIERA SER UTILIZADO PARA
RECIBIR UNA CADENA COMO ARGUMENTOA
UNA FUNCION QUE UTILIZA ARITMETICA DE
APUNTADOR PARA PROCESAR Y
POSIBLEMENTE PARA MODIFICARLA CADA
CARÁCTER DENTRO DE LA CADENA.
O UN APUNTADOR NO CONSTANTE A DATOS
CONSTANTES ES UN APUNTADOR QUE PUEDE
SER MODIFICADO PARA APUNTAR A CUALQUIER
ELEMENTO DE DATOS DEL TIPO
APROPIADO, ERO NO PUEDEN SER
MODIFICADOS LOS DATOS HACIA LOS CUALES
APUNTA.
3. EJEMPLO DE APUNTADOR NO CONSTANTE A
DATOS NO CONSTANTES
#include "stdio.h"
#include "conio.h"
#include "iostream"
using namespace std; EN ESTE EJEMPLO LA FUNCION
void convertir(char *);
CONVERTIR, DECLARA COMO SU
main()
{ ARGUMENTO UN APUNTADOR NO
system ("cls"); CONSTANTE A DATOS NO
char string[]="caracteres"; CONSTANES, LLAMADO s (CHAR *S). LA
cout<<"la cadena antes de la conversion es:n"; FUNCION PROCESA LA CADENA S, SE
cout<<string; CONVIERTE A SU LETRA EN MAYUSCULA
convertir(string);
CORRESPONDIENTE, A a Z, UTILIZANDO UN
cout<<"nla cadena despues de la conversion es:n";
cout<<string; CALCULO BASADO EN SU CODIGO ASCII, DE
system("pause"); LO CONTRARIO ES PASADO POR ALTO, Y ES
PROCESADO EL SIGUIENTE CARÁCTER EN
return 0; LA CADENA. NOTE QUE TODAS LAS ETRAS
} MAYUSCULAS EN EL CONJUNTO DE
CARACTERES ASCII TIENEN VALORES
void convertir(char *s)
{ ENTEROS QUE SON EQUIVALENTES EN
while (*s !='0') VALORES ASCII A SUS LETRAS
{ CORRESPONDIENTE EN MINUSCULAS
if (*s >='a' && *s<='z') MENOS 32
{
*s -=32;
++s;
}
4. EJEMPLO DE APUNTADOR NO CONSTANTE A
DATOS CONSTANTES
#include "stdio.h"
#include "conio.h" EN ESTE EJEMPLO LA FUNCION
#include "iostream" IMPRIMIRCARAC, DECLARA LOS
using namespace std; PARAMETROS DEL TIPO CONST CHAR * . LA
void imprimircarac(const char *);
DECLARACION SE LEE DE DERECHA A
main() IZQUIERDA DE LA FORMA “S” ES UN
{ APUNTADOR A UNA CONSTANTE DE
system("cls"); CARÁCTER. EL CUERPO DE LA FUNCION
char string[]="imprimir caracter por caracter la cadena";
UTILIZA UNA ESTRUCTURA FOR, PARA
imprimircarac(string); EXTRAER CADA CARÁCTER DE LA
cout<<("n");
system("pause");
CADENA, HASTA QUE SE ENCUENTRE EL
return 0; CARÁCTER NULL. DESPUES DE HABER
} IMPRESO CADA CARÁCTER, EL APUNTADOR
S ES INCREMENTADO, PARA QUE APUNTE AL
void imprimircarac(const char *s) SIGUIENTE CARÁCTER DENTRO DE LA
{ CADENA.
for ( ;*s!='0'; s++)
{
cout<<*s;
}
}
5. EJEMPLO DE APUNTADOR CONSTANTE A
DATOS NO CONSTANTES
EN ESTE EJEMPLO SE INTENTA MODIFICAR
#include "stdio.h" UN APUNTADOR CONSTANTE. EL
#include "conio.h" APUNTADOR APUNTA SE DECLARA SER DEL
#include "iostream" TIPO INT * CONST. LA DECLARACION SE LEE
DE DERECHA A IZQUIERDA COMO APUNTA
using namespace std;
ES UN APUNTADOR CONSTANTE A UN
main() ENTERO. EL APUNTADOR SE INICIALIZA CON
{ LA DIRECCION DE LA VARIABLE ENTERA X.
system ("cls"); EL PROGRAMA INTENTA ASIGNAR LA
DIRECCION DE Y A APUNTA, PERO SE
int x, y; GENERA UN MENSAJE DE ERROR. YA QUE
int * const apunta =&x; LOS APUNTADORES CONSTANTES A DATOS
apunta = &y; CONSTANTES. SIEMPRE PUNTA A LA MISMA
DIRECCION D MEMORIA, Y LOS DATOS NO
system("pause");
PIEDEN SER MODIFICADOS.
return 0;
}
6. EJEMPLO DE APUNTADOR CONSTANTE A
DATOS CONSTANTES
EN ESTE EJEMPLO DECLARA A LA VARIABLE
#include "stdio.h" DE APUNTADOR APUNTA SER DEL TIPO
#include "conio.h" CONST INT * CONST. ESTA DECLARACION SE
LEE DE DERECHA A IZQUIERDA COMO
#include "iostream" APUNTA ES UN APUNTADOR CONSTANTE A
using namespace std; UN ENTERO CONSTANTE. GENERA ERROR
main() YA QUE LOS APUNTADORES CONSTANTES A
{ DATOS CONSTANTES. SIEMPRE PUNTA A LA
MISMA DIRECCION DE MEMORIA, LOS
system ("cls"); DATOS Y DIRECCION NO PIEDEN SER
MODIFICADOS.
int x=5, y;
const int * const apunta =&x;
*apunta=7;
apunta = &y;
system("pause");
return 0;
}