Tag: 按值调用

传递地址,但它的工作方式类似于C中的值?

您好,我是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 } 当我传递地址时,为什么被调用函数所做的更改不会反映调用者?