Enero 16, 2018, 01:41:35 am

Autor Tema: ¿Como se pasan Las matrices a las funciones por valor o referencia? [C]  (Leído 2908 veces)

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

Desconectado RDanielV

  • Me das tu IP?
  • *
  • Mensajes: 22
  • Sexo: Masculino
  • Yo AMO a pOrtal HAcker!
    • Ver Perfil
Hola a todos.
Citar
Passing a One-Dimensional Array
When a one-dimensional array is passed to a function, the array’s address is passed by
value. This makes the transfer of information more efficient since we are not passing
the entire array and having to allocate memory in the stack for it. Normally, this means
the array’s size must be passed. If we don’t, from the function’s perspective all we have
is the address of an array with no indication of its size.

Los consulto porque tengo una duda con esta parte del libro, si mi traductor no falla dice que las matrices se pasan a funciones por valor, yo tengo entendido que el identificador de una matriz contiene la dirección de memoria del primer elemento o primer byte de la misma, por lo tanto, cualquier modificación que se efectué en la función llamada se ve reflejado en la función llamadora. -

Es todo, espero que alguien me diga como debo interpretar esto. -   
Saludos.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado seth

  • El mas real
  • G#
  • **
  • Mensajes: 7889
  • Sexo: Masculino
    • Ver Perfil
Re:¿Como se pasan Las matrices a las funciones por valor o referencia? [C]
« Respuesta #1 en: Junio 05, 2016, 09:54:37 pm »
No programo en C, pero ahi dice que se pasa la dirección por valor

O sea, vos tenes un puntero que contiene la direccion del array
A la funcion le pasas ese puntero por valor, por lo tanto, si adentro de la funcion vas modificando el puntero, no modificas el valor en la variable de la función llamadora
Al pasar la direccion del array, tenes acceso a la misma copia desde los dos lados y cualquier cosa que cambie va a seguir estando cambiada cuando termine la funcion


Ves links a xd-blog.com.ar que no andan? buscalos en You are not allowed to view links. Register or Login

Desconectado .:MYTO:.

  • Me das tu IP?
  • *
  • Mensajes: 192
  • Sexo: Masculino
  • Hunt3r m1nd 1s 0nly f0r f3w...
    • Ver Perfil
Re:¿Como se pasan Las matrices a las funciones por valor o referencia? [C]
« Respuesta #2 en: Junio 06, 2016, 04:01:58 am »
 En efecto, según lo que pone ahí interpreto lo mismo que seth, es decir, el puntero (identificador de array) se pasa por valor. Como en Java, supongo.

 Por tanto, modificar el valor al que apunta el puntero implica modificar el array original.

 Sin embargo, modificar el propio puntero no.

 Por ejemplo, en este código (en Java por que es lo que controlo):

Código: (JAVA) You are not allowed to view links. Register or Login
public static void main(String[] args) {
  int[] array = new int[3];
  array[0] = 1;
  array[1] = 2;
  array[2] = 3;
  modificar(array);
}

public static void modificar(int[] arrayArgumento) {
  arrayArgumento[0] = 4;
  arrayArgumento = new int[3];
  arrayArgumento[1] = 5;
  arrayArgumento[2] = 6;
}

 Al final de la ejecución de main, array es {4, 2, 3}. Modificar(int[]) ha cambiado el primer elemento del array argumento, pero luego al cambiar la dirección a la que apunta el identificador (reasignando arrayArgumento a un nuevo int[3]), entonces evidentemente ya no se manipula el array argumento.


Salu2.
Debería estar estudiando...

Desconectado RDanielV

  • Me das tu IP?
  • *
  • Mensajes: 22
  • Sexo: Masculino
  • Yo AMO a pOrtal HAcker!
    • Ver Perfil
Re:¿Como se pasan Las matrices a las funciones por valor o referencia? [C]
« Respuesta #3 en: Junio 06, 2016, 06:22:41 am »
Hola, mucha gracia a ambos por ocuparse. -
Me queda todo muy claro, el identificador del array se pasa por valor y como la función llamada recibe una copia exacta de la dirrección del primer elemento del array, toda modificación que se efectúe en dicha función se ve reflejada en el array original. -

Saludos.
« Última modificación: Junio 06, 2016, 06:34:20 am por RDanielV »


resuelto
Usando wchar_t en una estructura, como paso el valor por referencia?

Iniciado por EddyW

3 Respuestas
816 Vistas
Último mensaje Mayo 28, 2011, 03:34:37 am
por Avoidance25
xx
Funciones de Ordenamiento, Matrices, Bucles

Iniciado por ActerMarking

0 Respuestas
1415 Vistas
Último mensaje Enero 15, 2011, 12:11:24 pm
por ActerMarking
xx
Cómo hacer referencia a una funcion javascript dentro de una pagina ASP

Iniciado por zurfero

0 Respuestas
6128 Vistas
Último mensaje Marzo 29, 2007, 01:54:35 am
por zurfero
xx
Como puedo realizar una imagen "rollover" al pasan el ratón, en VB?

Iniciado por ExPuMa

4 Respuestas
2272 Vistas
Último mensaje Abril 22, 2009, 10:50:10 am
por seth
question
Como escribir variable+valor

Iniciado por bcn_marc_18

6 Respuestas
1038 Vistas
Último mensaje Marzo 08, 2011, 10:13:11 am
por bolivianito
resuelto
Como modifico el valor de la RAM y procesador??

Iniciado por tyrant-panda

6 Respuestas
4768 Vistas
Último mensaje Enero 20, 2008, 04:31:13 am
por seth
exclamation
Como insertar un valor en un arreglo !

Iniciado por Ike Array

0 Respuestas
2110 Vistas
Último mensaje ſeptiembre 11, 2011, 11:17:28 pm
por Ike Array
resuelto
[S]Como sumar un entero a un valor hexadecimal

Iniciado por tano1975

7 Respuestas
3690 Vistas
Último mensaje Abril 01, 2010, 04:06:35 am
por JaAViEr
xx
como buscar, reemplazar y reordenar un valor en un arreglo

Iniciado por Germanplz

4 Respuestas
1288 Vistas
Último mensaje Junio 29, 2014, 02:11:52 pm
por .xAk.
question
Como extraer valor de una celda seleccionada con javascript

Iniciado por misionero2011

1 Respuestas
2067 Vistas
Último mensaje ſeptiembre 11, 2013, 06:18:28 pm
por misionero2011