using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lista
{
unsafe class PunterosEstructuras
{
static void Main(string[] args)
{
//********************************
//** Utilización de estructuras **
//********************************
//Crea el objeto vacio
Persona p1 = new Persona();
//Crea el objeto con valores
Persona p2 = new Persona("Angel", "Lopez", 30, 1.70);
//Crea el objeto
Persona p3;
//Asigna valores
p3.Nombre = "Susan";
p3.Apellido = "Ochoa";
p3.Edad = 27;
p3.Estatura = 1.67;
Console.Write("Nombre: {0} \n Apellido: {1} \n Edad: {2} Estatura: {3} \n", p3.Nombre, p3.Apellido, p3.Edad, p3.Estatura);
//********************************
//** Punteros **
//********************************
int ejemploEdad = 30;
int* ejemploPuntero;
Console.WriteLine("Edad [ejemploEdad]= {0} \n", ejemploEdad);
//Declara variable Edad y le asigna 30
int Edad = 30;
//Declara puntero pEdad
//pEdad apunta a una variable entera
int* pEdad;
//Obtiene la dirección de memoria
//de la variable Edad y la asigna al puntero (&)
pEdad = &Edad;
//Imprime contenido de la variable Edad: 30
Console.WriteLine("Edad= {0}\n", Edad);
//Realiza el direccionamiento indirecto del puntero,
//imprime desde el puntero pEdad el contenido de Edad: 30 (*)
Console.WriteLine("Edad [pEdad]= {0}\n", *pEdad);
//Realiza el direccionamiento indirecto del puntero,
//suma 3 desde el puntero pEdad y lo asigna al contenido de Edad: 33 (*)
*pEdad += 3;
Console.WriteLine("Edad= {0}\n", Edad);
//Asignación de puntero a puntero
ejemploPuntero = pEdad;
//Realiza el direccionamiento indirecto del puntero,
//suma 3 desde el puntero ejemploPuntero y lo
//asigna al contenido de Edad: 35 (*)
*ejemploPuntero += 2;
Console.WriteLine("Edad= {0}", Edad);
//********************************
//** Punteros y estructuras **
//********************************
//Crea el objeto loc
Location loc;
//Asigna valores a sus variables internas
loc.X = 90;
loc.Y = 10;
//Declara puntero pStruct
//pStruct apunta a una estructura
Location* pStruct;
//Obtiene la dirección de memoria
//de la estructura loc y la asigna al puntero (&)
pStruct = &loc;
//Para tener acceso a un miembro de una
//estructura a través de un puntero.
Console.WriteLine("X = {0}", pStruct->X);
//Para tener acceso a un miembro de una
//estructura a través de un puntero.
//Modifica su valor
pStruct->X = 200;
Console.WriteLine("X = {0}", pStruct->X);
}
//**********************************
//***Declaración de una estructura**
//**********************************
public struct Location
{
public int X;
public int Y;
}
public struct Persona
{
public string Nombre;
public string Apellido;
public int Edad;
public double Estatura;
public Persona(string _nombre, string _apellido, int _edad, double _estatura)
{
Nombre = _nombre;
Apellido = _apellido;
Edad = _edad;
Estatura = _estatura;
}
}
}
}
No hay comentarios.:
Publicar un comentario
Es muy importante tu comentarios: