Título: Tengo un error con el paso de parámetros por referencia, en C (Solucionado)
Publicado por: DarkSorcerer 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. #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 ); 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
Título: Re: Tengo un error con el paso de parámetros por referencia, en C
Publicado por: 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.
Título: Re: Tengo un error con el paso de parámetros por referencia, en C
Publicado por: DarkSorcerer 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.
|