duda parametros por referencia vs punteros(Pascal/C)

Iniciado por Shp112, 10 Enero 2014, 02:29 AM

0 Miembros y 1 Visitante están viendo este tema.

Shp112

Hola gente estoy aprendiendo C y cuando llegue al tema de parametros en funciones se me armo un lio en mi cabeza.

Mi duda es la siguiente y es respecto a parametros por referencia vs punteros y de aqui me salen 2 preguntas.

1)Segun los conceptos que aprendi de Pascal de  parametros por valor y por referencia. En el primer caso se manda una copia del contenido de la variable original a la subrutina(Por valor), y en el segundo caso se manda la direccion de la variable , es decir que el contenido es referenciado desde la variable original y el parametro del procedimiento.
Mi pregunta es si lo dicho anteriormente es correcto, porque la invocacion tiene la misma estructura cuando se manda un valor o una direccion?

Un ejemplo que ilustraria mi pregunta seria(en pascal):

invocacion: sumar(x,y); /* Como se si se esta mandando un valor o una direccion ???, que es lo que envia realmente? esta es la verdadera pregunta*/

Cabecera del procedimiento(por valor): procedure sumar(a,b:integer);
Cabecera del procedimiento(por referencia)procedure sumar(Var a,b:integer);

Como resalte recien que es lo que pasa exactamente en el momento de la invocacion y ahi es donde he buscado informacion pero no he encontrado, hay alguna pila y que guarda exactamente?

2)Cuales son las diferencias entre pasar por referencia y punteros , si en ambos casos se esta pasando la direccion de la variable original. Uno estaria tentado a pensar que en el fondo del asunto pasa lo mismo pero se que algo lo difiere ademas de la sintaxis.

Saludos =)