+ Archivos en C
+ Estructuras en C
+ Graficos en C
+ Metodo de ordenacion Burbuja
>> Punteros en C
>> Apuntadores en C
* Aritmetica en C
* Funciones en C
* Estructuras en C
* Listas enlazadas en C
+ Tecnologias de almacenamiento
+ Turbo C basico 1
Apuntadores
+ Estructuras en C
+ Graficos en C
+ Metodo de ordenacion Burbuja
>> Punteros en C
>> Apuntadores en C
* Aritmetica en C
* Funciones en C
* Estructuras en C
* Listas enlazadas en C
+ Tecnologias de almacenamiento
+ Turbo C basico 1
Apuntadores
- Un puntero es una variable que contiene la dirección de memoria de otra variable. Se utilizan para pasar información entre una función y sus puntos de llamada.
Su sintaxis es la siguiente:
tipo *nombre;
Donde nombre es, naturalmente, el nombre de la variable, y tipo es el tipo del elemento cuya dirección almacena el puntero. - Existen dos operadores especiales para trabajar con punteros: & y *.
- El primero (&) devuelve la dirección de memoria de su operando. Por ejemplo, si queremos guardar en el puntero x la dirección de memoria de la variable num, deberemos hacer lo siguiente:
- x=#
- El segundo (*) devuelve el valor de la variable cuya dirección es contenida por el puntero. Este ejemplo sitúa el contenido de la variable apuntada por x, es decir num, en la variable a:
-
Operadores
- a=*x;
-
Asignación
Los punteros se asignan igual que el resto de las variables. El programa ejemplo mostrará las direcciones contenidas en p1 y p2, que será la misma en ambos punteros.
#include <stdio.h>
#include <conio.h>
main()
{
clrscr();
int a;
int *p1, *p2;
p1 = &a;
p2 = p1;
printf("%p %p",p1,p2);
getch();
}
Ejemplo 2
-
#include <conio.h>
#include <stdio.h>
void main(void)
{ char s[100];
int *ptr;
int i;
int contador=1;
ptr=&contador;
clrscr();
printf("Escriba una cadena: ");
gets(s);
printf("La cadena tiene: ");
printf("\n");
for (i=0; s[i]!=0; i++)
{
if(s[i]==' ')
{if(s[i+1]!=' ')
contador++;
}
}
printf("%d palabras.",*ptr);
getch();
}