Professional Documents
Culture Documents
APUNTADOR CONSTANTE / VALOR CONSTANTE APUNTADOR NO CONSTANTE / VALOR CONSTANTE APUNTADOR CONSTANTE / VALOR NO CONSTANTE APUNTADOR NO CONSTANTE / VALOR NO CONSTANTE
Se debe inicializar el puntero, sino el compilador emitir un error. Operaciones no permitidas Ninguna asignacin es permitida:
*ptrA=5; //error ptrA = ptrB; //error
Operaciones permitidas:
ptrA = &valor;//bien
Operaciones permitidas:
*ptrA = 5;//bien
Ejemplos:
//Apuntador y const #include <iostream> using std::cout; using std::endl; int main() { int valorA = 1; int valorB = 2; const int * const ptrValorA = &valorA; //puntero constante a valor constante //*ptrValorA=5;//error:Apunta a un dato constante //ptrValorA=&valorB;//error:El puntero es constante const int * ptrValorB = &valorA; //puntero no constante a un valor constante //*ptrValorB=5; //error:No se puede ya que su desrefencia es constante ptrValorB = &valorB; //se puede porque el puntero es no constante //int * const ptrValorC;//error:Un puntero constante se debe inicializar const int * ptrValorD;//Bien, ptrValorD puede tomar valores, pero no desreferenciado. int * const ptrValorE = &valorB;//puntero constante apuntando a un valor no constante (*ptrValorE)++; //La desreferencia se puede modificar //ptrValorE = ptrValorA;//error el puntero es constante return 0; }
Ver como hacer para compilar este programa. Publicado por santi en 1:50 a.m. Etiquetas: apuntadores, const, pointers, punteros 1 comentario:
Annimo dijo...
Hola, queria comentarte que creo q hay un error de tipeo importante en esta seccion, fijate que en las descripciones aparec dos veces: "Apuntador no constante / Valor constante" y en la 2da descripcion dice: int *ptrA; //se puede dejar sin inicializar Operaciones permitidas: Todas: ptrA = &valor;//bien ptrA +=5;//bien lo cual es correcto para "Apuntador no constante / Valor NO constante" Bueno, espero ser de ayuda. Suerte!