Tengo un error con el paso de parámetros por referencia, en C (Solucionado)

Iniciado por DarkSorcerer, 23 Enero 2014, 23:42 PM

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

DarkSorcerer

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.

#include <stdio.h>

void swap1(int *x, int *y){
   
   int aux = *x;
   *x = *y;
   *y = aux;
   
}

void swap2(int &x, int &y){
   
   int aux = x;
   x = y;
   y = aux;

}

void swap3(int x, int y){
   
   int aux = x;
   x = y;
   y = aux;
   
}

int main(){
   
   int x = 2;
   int y = 3;
   
   printf("El valor de X e Y respectivamente en el main es %i y %i.\n\n",x,y);
   
   swap1(&x,&y);
   printf("El valor de X e Y despues de la funcion swap1 es %i y %i.\n\n",x,y);
   
   swap2(x,y);
   printf("El valor de X e Y despues de la funcion swap2 es %i y %i.\n\n",x,y);
   
   swap3(x,y);
   printf("El valor de X e Y despues de la funcion swap3 es %i y %i.\n\n",x,y);
     
   getchar();
   return 0;
   
}


"/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

amchacon

Las referencias son de C++ no de C.

El error es porque estás compilando en C y no sabe que son las referencias.
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

#2
Cita de: amchacon 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.

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.