12.170 cursos gratis
8.774.097 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Programación en C++

Autor: Josue Diaz Cuenca
Curso:
8,89/10 (458 opiniones) |69596 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++

Nuestras novedades en tu e-mail

Escribe tu e-mail:



MailxMail tratarý tus datos para realizar acciones promocionales (výa email y/o telýfono).
En la polýtica de privacidad conocerýs tu derechos y gestionarýs la baja.

Cursos similares a Programación en C++



  • Výdeo
  • Alumnos
  • Valoraciýn
  • Cursos
1. C# Curso de Programación
Curso Básico de programación en C#, este curso básico abarcará desde las bases del... [14/07/05]
15.672  
2. Programación estructurada
Este curso les ayudará a tener conceptos básicos de la programación. Estos... [25/04/07]
3.025  
3. Programación estructurada (primera parte)
Aprende, en el mundo de la informática, la programación estructurada: en qué... [16/10/08]
4.454  

ýQuý es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail