elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tengo un error con el paso de parámetros por referencia, en C (Solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tengo un error con el paso de parámetros por referencia, en C (Solucionado)  (Leído 2,381 veces)
DarkSorcerer

Desconectado Desconectado

Mensajes: 69



Ver Perfil
Tengo un error con el paso de parámetros por referencia, en C (Solucionado)
« en: 23 Enero 2014, 23:42 pm »

Yo cuando estuve estudiando el lenguaje C, vi que se podía pasar parámetros a una función de diferentes formas, están por "valor" y por "referencia", a sí que quise repasar haciendo un pequeño programa que usa la clásica función swap que sirve para cambiar valores a 2 números, me complicó mas el de pasar por referencia, les dejo el código, la función swap1 y swap3 no tuve problemas, mi problema es el swap2, yo he visto que algunos pone el & en los parametros, a mi me acomodaba mas por punteros, pero igual quiero saber de la otra forma, también les dejo lo que me salió de error, uso Netbeans 7.3, compilador cygwin.

Código
  1. #include <stdio.h>
  2.  
  3. void swap1(int *x, int *y){
  4.  
  5.    int aux = *x;
  6.    *x = *y;
  7.    *y = aux;
  8.  
  9. }
  10.  
  11. void swap2(int &x, int &y){
  12.  
  13.    int aux = x;
  14.    x = y;
  15.    y = aux;
  16.  
  17. }
  18.  
  19. void swap3(int x, int y){
  20.  
  21.    int aux = x;
  22.    x = y;
  23.    y = aux;
  24.  
  25. }
  26.  
  27. int main(){
  28.  
  29.    int x = 2;
  30.    int y = 3;
  31.  
  32.    printf("El valor de X e Y respectivamente en el main es %i y %i.\n\n",x,y);
  33.  
  34.    swap1(&x,&y);
  35.    printf("El valor de X e Y despues de la funcion swap1 es %i y %i.\n\n",x,y);
  36.  
  37.    swap2(x,y);
  38.    printf("El valor de X e Y despues de la funcion swap2 es %i y %i.\n\n",x,y);
  39.  
  40.    swap3(x,y);
  41.    printf("El valor de X e Y despues de la funcion swap3 es %i y %i.\n\n",x,y);
  42.  
  43.    getchar();
  44.    return 0;
  45.  
  46. }

Código:
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory '/cygdrive/c/Users/Rodrigo Pizarro/Desktop/Archivos Varios/Ejercicios/Ejemplo06'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin_4.x-Windows/ejemplo06.exe
make[2]: Entering directory '/cygdrive/c/Users/Rodrigo Pizarro/Desktop/Archivos Varios/Ejercicios/Ejemplo06'
mkdir -p build/Debug/Cygwin_4.x-Windows
rm -f build/Debug/Cygwin_4.x-Windows/main.o.d
gcc    -c -g -MMD -MP -MF build/Debug/Cygwin_4.x-Windows/main.o.d -o build/Debug/Cygwin_4.x-Windows/main.o main.c
main.c:11:16: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
 void swap2(int &x, int &y){
                ^
nbproject/Makefile-Debug.mk:66: recipe for target 'build/Debug/Cygwin_4.x-Windows/main.o' failed
make[2]: Leaving directory '/cygdrive/c/Users/Rodrigo Pizarro/Desktop/Archivos Varios/Ejercicios/Ejemplo06'
nbproject/Makefile-Debug.mk:59: recipe for target '.build-conf' failed
make[1]: Leaving directory '/cygdrive/c/Users/Rodrigo Pizarro/Desktop/Archivos Varios/Ejercicios/Ejemplo06'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [build/Debug/Cygwin_4.x-Windows/main.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2


BUILD FAILED (exit value 2, total time: 1s)

Saludos a todos


« Última modificación: 24 Enero 2014, 00:38 am por DarkSorcerer » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Tengo un error con el paso de parámetros por referencia, en C
« Respuesta #1 en: 23 Enero 2014, 23:53 pm »

Las referencias son de C++ no de C.

El error es porque estás compilando en C y no sabe que son las referencias.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
DarkSorcerer

Desconectado Desconectado

Mensajes: 69



Ver Perfil
Re: Tengo un error con el paso de parámetros por referencia, en C
« Respuesta #2 en: 24 Enero 2014, 00:22 am »

Las referencias son de C++ no de C.

El error es porque estás compilando en C y no sabe que son las referencias.

Parecía un error estúpido (y hasta me daba vergüenza preguntarlo :O), pero me sacaste de eso, gracias, yo empecé al revés, primero C++ y después me puse a investigar sobre C.
« Última modificación: 24 Enero 2014, 00:24 am por DarkSorcerer » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines