Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Pasar un parámetro por referencia en C

Estas en el tema de Pasar un parámetro por referencia en C en el foro de C/C++ en Foros del Web. Saludos. He estado aprendiendo a programar en C recientemente, y he visto que el paso de un parámetro por referencia en C no existe, solo ...
  #1 (permalink)  
Antiguo 11/03/2011, 15:11
Dtc
 
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 39
Antigüedad: 13 años, 2 meses
Puntos: 1
Pregunta Pasar un parámetro por referencia en C

Saludos.
He estado aprendiendo a programar en C recientemente, y he visto que el paso de un parámetro por referencia en C no existe, solo existe en C++, pero como primero quiero aprender a programar en C, y quería ver si hay alguna alternativa a esto para lenguaje en C, pero con los mismos resultados.
¿Es esto posible? He estado leyendo un poco sobre el pasar un puntero por referencia, pero al parecer, se le pasa a la función la dirección de memoria de ese puntero y no el valor de la variable que representa.

Por ejemplo

Código:
...
int a, b, c;

void areas(int altura, int base, int *area) {

base * altura = *area;

}
printf("Inserta a continuacion, el valor de la altura");
scanf("%i", &a);
Printf("Inserta a continuacion, el valor de la base");
scanf("%i", &b);

areas(a, b, &c);

printf("El area del rectangulo es %c", c);
...
Esto, como se sabe, solo es para C++, pero, ¿como sería un código que haga lo mismo que este, pero para C?


Saludos y gracias

Última edición por Dtc; 11/03/2011 a las 15:42
  #2 (permalink)  
Antiguo 11/03/2011, 20:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Pasar un parámetro por referencia en C

Asi se hace en C y en C++, el pasaje por referencia que existe en C++ ademas de este es de esta forma:

Cita:
int a, b, c;

void areas(int altura, int base, int& area) {

base * altura = *area;

}
printf("Inserta a continuacion, el valor de la altura");
scanf("%i", &a);
Printf("Inserta a continuacion, el valor de la base");
scanf("%i", &b);

areas(a, b, c);

printf("El area del rectangulo es %c", c);
...
En el prototipo le pones un & y cuando lo pasas lo haces sin agregarle ningun operador. El resultado es el mismo.
  #3 (permalink)  
Antiguo 12/03/2011, 08:33
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Pasar un parámetro por referencia en C

En C solo estan los punteros. Y seria algo asi:

Código C:
Ver original
  1. int a, b, c;
  2.  
  3. void areas(int altura, int base, int * area) {
  4.  
  5.  *area = base * altura;
  6.  
  7. }
  8.  
  9. printf("Inserta a continuacion, el valor de la altura");
  10. scanf("%i", &a);
  11. Printf("Inserta a continuacion, el valor de la base");
  12. scanf("%i", &b);
  13.  
  14. areas(a, b, &c);
  15.  
  16. printf("El area del rectangulo es %c", c);

Etiquetas: pasar, referencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:10.