TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección...

12
TIPOS DE DATOS PARCIAL III Punteros

Transcript of TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección...

Page 1: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

TIPOS DE DATOS

PARCIAL III

Punteros

Page 2: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

Un puntero es una variable que hace referencia a una dirección de memoriaSintaxis: Tipo_Dato *nombre_variable_puntero;Ejemplo: int *p; Asignación de Dirección nombre_puntero=&variable;

Punteros

Page 3: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

El carácter & delante de una variable indica que lo se está accediendo es a la dirección de memoria de dicha variable.

Ejemplo: int *p; p=0; /* p posee la dirección NULL ó 0*/ p=NULL; /* p posee la dirección NULL ó 0*/ p=&i; /*p apunta hacia i ó conteniendo

la dirección de i */ p=(int )1501; /*dirección absoluta de

memoria */

Page 4: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

Inicialización

Sintaxis:

tipo_dato

*nombre_puntero=&variable;

Ejemplo:

int i=7,*p=&i;

Page 5: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>void funcion(int *pi){ *pi = 0; //se asigna 0 a lo apuntado por pi}int main(){ int n=1; //declara un entero printf("%d\n",n); //imprime su valor funcion(&n); //invoca a la funcion con la referencia al entero printf("%d\n",n); //imprime el nuevo valor return 0;}

Page 6: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>

int main(){ int a=13; int *pa;

pa = &a;

printf("%u\n",&a); printf("%u\n",pa);

printf("%d\n",a); *pa = 55; printf("%d\n",a); printf("%d\n",*pa);

return 0;}

Page 7: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>void division_entera(int x, int y, int *cuoc, int *resto){ *cuoc = x/y; *resto = x - y*(*cuoc); }int main(){ int a,b; //variables de entrada int c,r; //variables de salida

a = 5; //se define el valor de las entradas b = 3; division_entera( a, b, &c, &r ); //se invoca la función con 2 parametros //por copia y 2 por referencia //Aqui c y r ya cambiaron de valor printf("%d dividido %d da %d y sobran %d\n",a,b,c,r);

return 0;}

Page 8: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>

int main(){ int a[10]; printf("&a[0]=%u\n",&a[0]); printf("&a[1]=%u\n",&a[1]);

printf("a=%u\n",a);

return 0;}

Page 9: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>#define TAM 10void imprimir(int *a,int n ){ int i; for(i=0; i<n; i++) printf("%d, ",a[i]); printf("\n");}int main(){ int arreglo[TAM]; int i; for(i=0; i<TAM;i++){ arreglo[i]=i+1; } imprimir(arreglo, TAM); for(i=0; i<TAM; i++){ *(arreglo+i)=0; } imprimir(arreglo, TAM); return 0;}

Page 10: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>#define TAM 10char* saluda(char s[TAM] ){ s[0]='h'; s[1]='o'; s[2]='l'; s[3]='a'; s[4]='\0';

return s;}int main(){ char str[TAM]; char *str2;

str2 = saluda(str);

printf("%s",str2);

return 0;}

Page 11: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>#include <stdlib.h>

int main(){ int *pi; pi = NULL; //indica que pi es un puntero que aun //no apunta a nada valido *pi = 1234;

return 0;}

Page 12: TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;

#include <stdio.h>

int main(){ int a[3];

printf("sizeof(int)=%d\n", sizeof(int) ); printf("sizeof(char)=%d\n", sizeof(char) ); printf("sizeof(float)=%d\n", sizeof(float) ); printf("sizeof(double)=%d\n", sizeof(double) ); printf("sizeof(a)=%d\n", sizeof(a) ); printf("tamano(a)=%d\n", sizeof(a)/sizeof(int) );

return 0;}