Discussion:
diferencias de punteros
(demasiado antiguo para responder)
m***@gmail.com
2006-02-26 20:23:53 UTC
Permalink
hola compañeros

espero que puedan ayudarme, dado que tengo 2 problemitas, necesito
saber la diferencia entre estos 2 punteros (& y * ) espero me puedan
explicar eso y tambien necesito hacer un programa en c que realize la
ec. de 2do grado, para calcular x1 y x2, pero utilizando el mouse.

espero me ayuden, por que de hecho no se programar, me lo dejaron de
tare en la escuela, pero realmente no se mucho apenas estoy aprendiendo
a utilizar un bucle y ya me pidieron el uso del mouse, pero bueno les
agradecere toda la ayuda que me puedan proporcionar.
Jose Matamoros
2006-03-04 17:32:35 UTC
Permalink
& representa la dirección y * el contenido. Si lo que estamos es declarando
un puntero, entonces * sirver para indicarle al compilador que la variable
declarada es un puntero.
Te pongo un ejemplo:

/* declaramos la variable 'numero' y el puntero 'dirnum' */
int numero;
int *dirnum;

dirnum=№ /* Aquí el puntero 'dirnum' estará apuntando a la variable
'numero', pero eso no significa que
guarde el valor de 'numero', sino que lo
que guarda es su dirección */

*dirnum=4; /* Ahora el contenido de lo que apuntaba 'dirnum' vale
4; como 'dirnum' estaba apuntando a
'numero', número pasa a valer 4 */


El ejemplo es un poco tonto. La verdadera utilidad de los punteros es para
pasar parámetros a las funciones y para utilizar arrays de elemenos. Te
pongo un ejemplo de función:

void suma2(int num)
{
num+=2;
}

Imagínate que tengo el siguiente programa.

int main()
{
int num=4;
suma2(num);
printf("%d",num);
return 1;
}

En este caso se imprimirá por pantalla el valor '4', ya que se pasa a la
función el valor de num, pero no se pasa por referencia. Lo que le llega a
la función realmente es una copia del valor de num, por lo que si modifico
esa copia, el original se mantendrá igual.

En cambio, si definimos la función suma2 de la siguiente forma:

void suma2(int *num)
{
*num+=2;
}

Ahora se le pasa a la función la dirección del número. Podemos ejecutar la
siguiente sentencia:

int main()
{
int num=4;
suma2(&num);
printf("%d",num);
return 1
}

En este caso se imprimirá por pantalla el valor '6', ya que en la función
suma2() le hemos sumado 2 al contenido de un puntero que estaba apuntando a
num.

No sé si he sido claro, pero al menos te he puesto 2 ejemplos de como usar
punteros.

Un saludo!!


<***@gmail.com> escribi� en el mensaje news:***@v46g2000cwv.googlegroups.com...
hola compañeros

espero que puedan ayudarme, dado que tengo 2 problemitas, necesito
saber la diferencia entre estos 2 punteros (& y * ) espero me puedan
explicar eso y tambien necesito hacer un programa en c que realize la
ec. de 2do grado, para calcular x1 y x2, pero utilizando el mouse.

espero me ayuden, por que de hecho no se programar, me lo dejaron de
tare en la escuela, pero realmente no se mucho apenas estoy aprendiendo
a utilizar un bucle y ya me pidieron el uso del mouse, pero bueno les
agradecere toda la ayuda que me puedan proporcionar.

Loading...