写了一个简单的代码,构造了一个函数,希望这个函数的作用是使形参值-1。
为什么普通的函数(我也不知道怎么称呼)改变不了形参a,b的值,当改为指针做形参就可以改变呢?
图一为不可改变;图二为改进后
void f(int m,int n) 函数形参为值传递,这两个参数的作用域就在这个函数体内,在函数体内对两个参数值的改变,只在这个函数体内能起作用,当函数执行完返回到主函数时,这两个参数就被释放了,我们就找不到它了。
void f(int *m,int *n) 函数的形参为指针,这两个指针指向了主函数中变量a b 的地址,在函数体内对两个指针 *m *n的操作,相当于就是直接对它们所指向变量的操作,当函数执行完返回到主函数时,这两个形参虽然被释放了,但对变量 a b 已经有了实质性的改变。
指针这块内容学完你就懂了