您好,我是 C 编程语言的初学者。最近我读到了按值调用和按地址调用。我了解到,在被调用函数中的地址变化反映了被调用者。但是,以下代码不能那样工作。
int x = 10,y = 20;
void change_by_add(int *ptr) {
ptr = &y;
printf("\n Inside change_by_add\t %d",*ptr);
// here *ptr is printing 20
}
void main(){
int *p;
p = &x;
change_by_add(p);
printf("\nInside main\t %d", *p);
// here *p is still pointing to address of x and printing 10
}
当我传递地址时,为什么被调用函数所做的更改不反映调用者?