Я создаю функцию, которая изменяет переменную, чтобы она могла использоваться функцией, ссылающейся на нее (родительская функция?).
Есть ли разница между использованием '& x' по сравнению с использованием 'z'в коде ниже?
void changeX(int *p);
int main(void) {
int x = 10;
int *z = &x;
changeX(z);
// or
changeX(&x);
return 0;
}
void changeX(int *p){
*p = *p + *p;
}
Вывод:
10
20
40
Оба дают одинаковый результат (меняют x одинаково), но есть ли неочевидная разница между ними?