Apuntadores

Solo disponible en BuenasTareas
  • Páginas : 9 (2132 palabras )
  • Descarga(s) : 0
  • Publicado : 6 de septiembre de 2012
Leer documento completo
Vista previa del texto
PRACTICA 2: APUNTADORES
En esta práctica aplicamos los conceptos de apuntador y de memoria dinámica para el manejo optimizado en la memoria, o sea para no reservar espacio en memoria mas que solamente la que realmente se va a ocupar. Esto se nota más que nada en el ejercicio 5. También pudimos analizar paso a paso lo que hace un apuntador cuando se le asigna una dirección de memoria de unavariable y lo que sucede si ambas son del mismo tipo o de diferentes tipos

DESARROLLO
Los programas a desarrollar en esta práctica son las siguientes:
Ejercicio 1
#include <iostream>
#include <cstring>

using namespace std;

main()
{
string s;
int dato;
int *apuntador;
apuntador=&dato;
*apuntador=5;
s.append(160,'_');
cout<<"\n\t\t\t\t \6 Ejercicio 1";cout<<"\n"<<s;
//a) valor del apuntador
cout<<"\n\n\t\6 a) El valor del apuntador es: "<<apuntador;
//b) el valor de dato
cout<<"\n\n\t\6 b) El valor del dato es: "<<dato;
//c) el valor contenido de apuntador
cout<<"\n\n\t\6 c) El contenido del apuntador es: "<<*apuntador;
cout<<"\n\n"<<s;

cout<<"\n\n\n"<<endl;
return0;
}

Ejercicio 2
/*El siguiente programa se explicara paso a paso junto con los resultados que
imprime en pantalla cada vez que se ejecuta la función printf*/

#include <stdio.h>

main(){
/*Paso 1*/char *apuntador;
/*Paso 2*/char variable;
/*Paso 3*/variable=1;
/*Paso 4*/apuntador=&variable;
/*Paso 5*/printf("Valor almacenado envariable: %d\n",variable);
/*Paso 6*/printf("Valor almacenado en apuntador: %d\n",apuntador);
/*Paso 7*/*apuntador=2;
/*Paso 8*/printf("Nuevo valor almacenado en variable: %d\n",variable);
/*Paso 9*/printf("Valor almacenado en apuntador: %d\n",apuntador);
getch();
}

/*Pasos:
1.- Se declara una variable de tipo apuntador a char llamado "apuntador".
2.- Sedeclara una variable de tipo char nombrada "variable".
3.- Se le asigna el caracter "1" a "variable".
4.- Se le asigna el valor de la localidad de memoria de "variable" a "apuntador".
5.- La función imprime el valor de "variable", que es el caracter 1.
6.- La función imprime el valor de "apuntador", o sea la dirección de memoria de "variable" en el sistema decimal ya que se manda a imprimircon un %d.
7.- Se le asigna el caracter "2" a la variable a la cual "apuntador" apunta, que en este caso es a "variable". En otras palabras, se modifica el valor de "variable" de manera indirecta, pasando de almacenar el caracter 1 al caracter 2.
8.- La función imprime el nuevo carater almacenado en "variable", que es el 2
9.- La función nuevamente imprime el valor de "apuntador", que es ladirección de memoria de "variable" en el sistema decimal. Este valor no se ha modificado porque "apuntador" sigue apuntando a "variable"
*/

Ejercicio 3
#include <iostream>
#include <cstring>

using namespace std;

main()
{

string s;
int num;
int *p;
int *a;
s.append(160,'_');
cout<<"\n\t\t\t\t \6 Ejercicio 3";
cout<<"\n"<<s;

/* Determinar lossiguientes valores
a) num b) p c) &num d) &p e) *p
despues de ejecutar de forma acumulativa las siguientes sentencias
*/

// a) para num=5; p=12
num=5;
*p=12;
a=#
cout<<"\n\6 Para num = 5 y p = 12";
cout<<"\n\n\n\t\6 a) El valor de num es: "<<num;
cout<<"\n\n\n\t\6 b) El valor de p es: "<<*p;
cout<<"\n\n\n\t\6 c) Ladireccion de memoria de num es: "<<a;
cout<<"\n\n\n\t\6 d) La direccion de memoria de p es: "<<&p;
cout<<"\n\n\n\t\6 c) El contenido de p es: "<<*p;
cout<<"\n"<<s;
// b) num=p;
*p=num;
cout<<"\n\n\6 Para num = p";
cout<<"\n\n\n\t\6 a) El valor de num es: "<<num;
cout<<"\n\n\n\t\6 b) El valor de p es: "<<*p;...
tracking img