24.03.2015, 02:13
Buenas. Tengo una duda de como se ejecuta el traspaso del valor de estas variables
eso imprime en los dos 4 8, la cosa es que no se como se traspasa un valor a otro, yo lo entiendo asн: es un pase por referencia, con las "&" (aunque dudo de como funciona), deberнa imprimir en la primera 2 4 que son los valores asignados, pero no, estos toman el mismo valor que el de la funciуn. Esta claro que en 'myfunc' imprime 4 8, puesto que usa "+=" lo cual suma el doble de ese valor (2 4 = 4 8 ), pero en la otra parte de las variables x e y, no sй por que imprime ese mismo valor, cuando yo supongo que deberнa imprimir esos valores iniciales asignados (2 - 4). Yo sospecho de que funciona de la siguiente manera: el "&" (que aъn no sй su nombre) toma como referencia como bien lo indica, de los valores de las variables new x, y, luego las suma. Pero experimentando ciertas cosas, probй en colocar:
es decir, colocar directamente el nombre de las variables para saber si es cierto mi teorнa, pero me da error, asi que la descartй. Muchas gracias, y espero que respondan mis inquietudes y mi duda de como se ejecuta el cуdigo.
pawn Код:
public OnGameModeInit()
{
new x = 2, y = 4;
myfunc(x, y);
printf("%d %d", x, y); // 4 8
}
myfunc(&a, &b) // passed by reference
{
a += 2;
b += 4;
printf ("%d %d\n", a, b); // 4 8
}
pawn Код:
a += x;
b += y;

