3.283 cursos gratis
6.261.122 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Programación en C++ > Punteros

Programación en C++

Autor: Josue Diaz Cuenca
Curso:  4,45/5 4,45/5 (454 opiniones) |38809 alumnos|Fecha publicación: 04/06/2004

Capítulo 6:

 Punteros

El especificador constante (const)

Una constante es una entidad cuyo valor no se puede modificar, y en C++, la palabra reservada const se utiliza para declarar una constante.
const int longitud = 20;
char array[longitud]; // válido en C++ pero no en C

Una vez que una constante se declara no se puede modificar dentro del programa.

En C++ una constante debe ser inicializada cuando se declara, mientras que en ANSI C, una constante no inicializada se pone por defecto a 0.

La diferencia más importante entre las constantes en C++ y C es el modo como se declaran fuera de las funciones. En ANSI C se tratan como constantes globales y se pueden ver por cualquier archivo que es parte del programa. En C++, las constantes que se declaran fuera de una función tienen ámbito de archivo por defecto y no se pueden ver fuera del archivo en que están declaradas. Si se desea que una constante se vea en más de un archivo, se debe declarar como extern.

En C++ las constantes se pueden utilizar para sustituir a #define.

En C:
#define PI 3.141592
#define long 128

En C++:
const PI = 3.141592
const long = 128

Punteros y direcciones de constantes simbólicas

No se puede asignar la dirección de una constante no simbólica a un puntero no constante, pero sí se puede desreferenciar el puntero y cambiar el valor de la constante.
const int x=6;
int *ip;
ip = &x; //error
*ip=7;

Punteros a un tipo de dato constante

Se puede declarar un puntero a un tipo de dato constante pero no se puede desreferenciar.
const int x=6;
const int *ip; //puntero a una constante entera
int z;
ip=&x;
ip=&z;
*ip=10; //error: no se puede desreferenciar este tipo de puntero y modificar z
z=7; //válido: z no es una constante y se puede cambiar.

El puntero a un tipo constante es muy útil cuando se desea pasar una variable puntero como un argumento a una función pero no se desea que la función cambie el valor de la variable a la que está apuntada.

struct ejemplo
{
int x;
int y;
};
void funcion(const ejemplo *);
void main()
{
ejemplo e={4,5};
funcion(&e); //convertirá un puntero no constante a un puntero const
}
void funcion(const ejemplo *pe)
{ ejemplo i;
i.x=pe->x;
i.y=pe->y;
pe->x=10; } // error: no se puede desreferenciar pe.

Punteros constantes

Se puede definir una constante puntero en C++. Las constantes puntero se deben inicializar en el momento en que se declaran. Se leen de derecha a izquierda.
void main()
{
int x=1,y;
int *const xp= &x; // xp es un puntero constante a un int
xp=&y; // error: el puntero es una constante y no se puede asignar un nuevo valor a punteros constantes
*xp=4;
}

Capítulo siguiente - Punteros II
Capítulo anterior - Operadores especiales de C++
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 454 opiniones. Opina sobre este curso.


Cursos similares a Programación en C++


Cursos Valoración Alumnos Vídeo
Funciones en C (primera parte)
Curso de programacíon informática sobre Funciones en C en el orden de los fundamentos de la programación. Comprende el desarrollo de un software utilizando funciones y a ... [17/10/08]
 4,50/5 2.816  
C# Curso de Programación
Curso Básico de programación en C#, este curso básico abarcará desde las bases del lenguaje hasta nuestros primeros pasos con aplicaciones web, acceso a bases de datos de... [14/07/05]
 3,50/5 8.486  
Informática. Desarrollo científico del ordenador
Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo científico que hay detrás de una computadora u ordenado... [10/07/09]
5/5 4.375  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail