PUNTEROS 1 Sem11 PDF
PUNTEROS 1 Sem11 PDF
PUNTEROS 1 Sem11 PDF
PROF GPR
¿Que es puntero?
Es una variable que contiene la dirección de memoria de otra
variable.
¿Como se declara una variable puntero ?
• tipo *nombre_variable;
Sintaxis
• int *punt;
Ejemplo • punt apunta a una variable tipo entero
Al declarar un puntero se debe indicar a
que tipo de dato apuntará.
string saludo=“hola” int x= 12;
string* p; int *p;
float x= 12.46;
float *p;
OPERADORES PUNTERO
• Devuelve la dirección de memoria de la
Operador de variable a la que precedE
Dirección (&) • Ejemplo: &Edad
• punt=&Edad
&=>ampersand
a=7; ptr a
ptr=&a;
7
Un puntero puede ser inicializado a 0, NULL o a una dirección. Un apuntador con valor NULL
no apunta a nada. Ponerlo a 0 es igual a NULL, pero se prefiere NULL.
#include <stdio.h>
int j, k; j
int *ptr;
0014F780 1 ptr
int main(void)
{ 0014F768 0014F774
j = 1; k
k = 2; 0014F774 2
ptr = &k;
printf("\n");
printf("j tiene el valor %d y está almacenado en %p\n",j,&j);
printf("k tiene el valor %d y está almacenado en %p\n",k,&k);
printf("ptr tiene el valor %p y está almacenado en %p\n",ptr,&ptr);
printf("El valor del entero al que apunta ptr es %d\n", *ptr);
getch();
return 0;
}
#include <stdio.h>
#include<conio.h> // usado por el getch()
int main(void)
{
int j, k;
int *ptr;
j = 1;
k = 2;
ptr = &k;
printf("\n");
printf("j tiene el valor %d y esta almacenado en %p\n",j,&j);
printf("k tiene el valor %d y esta almacenado en %p\n",k,&k);
printf("ptr tiene el valor %p y esta almacenado en %p\n",ptr,&ptr);
printf("El valor del entero al que apunta ptr es %d\n", *ptr);
getch();
return 0;
}
#include<iostream>
#include<conio.h>
using namespace std;
int x=10;
int *dir=&x;
int main()
{
int num;
int *dir1=#
cout<<&x<<endl;//direccion de x
cout<<dir<<endl;//direccion x
cout<<*dir<<endl;//contenido de direccion dir
cout<<"Ingrese un numero num=";
cin>>num;
cout<<"el valor de num es "<<num<<endl;
cout<<"El valor de la direccion de num es &num="<<&num<<endl;
cout<<"La dirección de num es "<<dir1<<endl;
cout<<"el contenido de la dirección de num es "<<*dir1<<endl;
getch();
return 0;
}
Que es el sizeof
La función sizeof, devuelve el tamaño en bytes que ocupa una variable o algún
tipo de dato.
Sintaxis
sizeof( tipo ) (1)
sizeof expresión (2)
Explicación
1) Devuelve el tamaño en bytes de la representación del objeto de tipo.
2) Devuelve el tamaño en bytes de la representación del objeto del tipo que
sería devuelto por la expresión, si es evaluable.
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{short int a;
int b;
float c;
double d;
cout<<"sizeof(a) --short int - es:"<<sizeof(a)<<endl;
cout<<"sizeof(b) --int -- es:"<<sizeof b<<endl;
cout<<"sizeof(c) --float-- es:"<<sizeof (c)<<endl;
cout<<"sizeof(d) --double-- es:"<<sizeof(d)<<endl;
cout<<"sizeof(char) es:"<<sizeof(char)<<endl;
getch();
return 0;
}
Tipo Declaración Numero de
bytes
short short int z; 2
int int z; 4
float float z; 4
double double z; 8
char char z; 1
Dirección de memoria de una variable
int *p;
p=&x; x
p p+1 p+2
3500 45
3500 3504 3508
#include <iostream>
#include<conio.h>
using namespace std;
void cambio(int * ,int * );
int main()
{
int x,y;
cout<<"Ingrese valor de x="; void cambio(int *a,int *b)
cin>>x; {
cout<<"Ingrese valor de y="; int t;
cin>>y; t=*a;
cout<<" x="<<x<<" y="<<y<<endl; *a=*b;
cambio(&x,&y); *b=t;
cout<<" x="<<x<<" y="<<y<<endl; }
getch();
return 0;
}
#include <iostream>
#include<conio.h>
using namespace std; void cambio(int &a,int &b)
void cambio(int & ,int & ); {
int main() int t;
{ cout<<"al iniciar cambio"<<endl;
int x,y; cout<<"Direccion &a="<<&a<<endl;
cout<<"Ingrese valor de x="; cout<<"Direccion &b="<<&b<<endl;
cin>>x; cout<<"valor de a="<<a<<endl;
cout<<"Ingrese valor de y="; cout<<"valor de b="<<b<<endl;
cin>>y; t=a;
cout<<" x="<<x<<" y="<<y<<endl; a=b;
cout<<"Direccion x="<<&x<<endl; b=t;
cout<<"Direccion y="<<&y<<endl; cout<<"al finalizar cambio"<<endl;
cambio(x,y); cout<<"Direccion &a="<<&a<<endl;
cout<<" x="<<x<<" y="<<y<<endl; cout<<"Direccion &b="<<&b<<endl;
cout<<"Direccion x="<<&x<<endl; cout<<"valor de a="<<a<<endl;
cout<<"Direccion y="<<&y<<endl; cout<<"valor de b="<<b<<endl;
getch(); }
return 0;
}