jueves, 26 de noviembre de 2015

Punteros y esrtructura de datos C#

using System;
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: