Вот рассматриваемая функция. Почему x не изменяется, несмотря на наличие ссылки ptr на адрес памяти? Точно так же, почему у не меняется?
#include <stdio.h>
int func (int a, int *b)
{
int *ptr = &a;
*ptr += 5;
ptr = b;
*ptr -= 3;
return a;
}
int main ()
{
int x = 2;
int y = 8;
int ret = func (x, &y);
printf ("x: %d\n", x);
printf ("y: %d\n", y);
printf ("ret: %d\n", ret);
return 0;
}
Редактировать: да, у вас меняется. Сожалею.