| %d | <= direccion y datos de valor.\n", &valor,valor); puntero = &valor; printf("%u => | %d | <= direccion y datos de puntero.\n", &puntero,puntero); printf("\n Valor almacenado en puntero = %d\n",puntero); printf(" Direccion de puntero : &puntero = %u\n",&puntero); printf(" Valor referenciado por puntero: *puntero = %d\n", *puntero); }"> | %d | <= direccion y datos de valor.\n", &valor,valor); puntero = &valor; printf("%u => | %d | <= direccion y datos de puntero.\n", &puntero,puntero); printf("\n Valor almacenado en puntero = %d\n",puntero); printf(" Direccion de puntero : &puntero = %u\n",&puntero); printf(" Valor referenciado por puntero: *puntero = %d\n", *puntero); }">

La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Asignatura: Lenguaje de Programación de Sistema 2014 PPT No. 03 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay.

Presentaciones similares


Presentación del tema: "Asignatura: Lenguaje de Programación de Sistema 2014 PPT No. 03 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay."— Transcripción de la presentación:

1 Asignatura: Lenguaje de Programación de Sistema 2014 PPT No. 03 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura: http://www.jiiea.com/SyPrgLan/ User: sist2014 psw: sist#C10

2 Punteros – Pointer en habla inglesa Punteros = apuntadores a memoria Direcciones de memoria Contenido de memoria Vaciado de un sector de memoria, mostrando direcciones segmentadas(modo real) y los contenidos correspondientes: 13AA:0000 CD 20 FF 9F 00 9A EE FE-1D F0 4F 03 0E 0E 8A 03.........O..... 13AA:0010 0E 0E 17 03 0E 0E 11 04-01 01 01 00 02 FF FF FF................ 13AA:0020 FF FF FF FF FF FF FF FF-FF FF FF FF A0 0D 4E 01..............N. 13AA:0030 CE 12 14 00 18 00 AA 13-FF FF FF FF 00 00 00 00................ 13AA:0040 05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00................ 13AA:0050 CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20.!........... 13AA:0060 20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20..... 13AA:0070 20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00........

3 Punteros: Idea básica #include main() {int valor; /* Una posición de memoria para guardar un carácter. */ int *puntero; /* Un puntero. */ valor = 97; printf("%u => | %d | <= direccion y datos de valor.\n", &valor,valor); puntero = &valor; printf("%u => | %d | <= direccion y datos de puntero.\n", &puntero,puntero); printf("\n Valor almacenado en puntero = %d\n",puntero); printf(" Direccion de puntero : &puntero = %u\n",&puntero); printf(" Valor referenciado por puntero: *puntero = %d\n", *puntero); }

4 Resultados de la ejecución del programa anterior: 1204 =>|97| · · · · · dirección y dato de valor 4562 => |1204| · · · · · dirección y dato de puntero Compilando con Visual C/C++ Express Edition 2010…ver resultados! (Configurar Win32 CONSOLE APLLICATION, EMPTY PROJECT, con Character Set = NOT SET) para poder compilar nativo

5 Se puede modificar el valor de una variable mediante el uso de punteros Esto permite pasar mas de un valor desde una función invocada hacia la función que la invocó El programa a continuación ilustra este caso:

6 #include main() { int *puntero; /* Un puntero. */ int variable; /* Una posición para guardar un valor. */ variable = 1; puntero = &variable; printf("Valor almacenado en variable = %d\n", variable); printf("Valor almacenado en puntero = %d\n", puntero); *puntero = 2; printf("Nuevo valor almacenado en variable = %d\n", variable); printf("Valor almacenado en puntero = %d\n", puntero); }

7 Resultado de la ejecución del código anterior Valor almacenado en variable = 1 Valor almacenado en puntero = 7732 Nuevo valor almacenado en variable = 2 Valor almacenado en puntero = 7732

8 Paso de variables con puntero. Se muestra otro método para pasar un valor desde la función llamada a la función que la invoca: el uso de punteros En lo que se había visto anteriormente: #include int llameme(void); /* Función invocada desde main. */ main(){ int x; /* Variable que recibe lo devuelto por la función */ x = llameme(); printf("El valor de x es: %d",x); return(0); } int llameme(void) { return(5);

9 Lo mismo anterior pero con método de punteros: #include void llameme(int *p); main() {int x; x = 0; printf("El valor de x es %d\n", x); llameme(&x); printf("El nuevo valor de x es %d\n", x); } void llameme(int *p) { *p = 5; }

10 FIN


Descargar ppt "Asignatura: Lenguaje de Programación de Sistema 2014 PPT No. 03 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay."

Presentaciones similares


Anuncios Google