声明本文章中的代码来自郝斌老师的自学C语言视频。
在学习 c 语言的过程中,经常容易犯的错误就是把形参和实参误认为是相同的变量。下面,我还是通过郝斌老师 c 语言的自学视频中的代码来解释一下这个问题。
这个程序的运行结果是
这个运行结果说明主调函数的 i 值 和 被掉函数的 i 值是不同的变量。
从上面的图中可以看出,即便是程序将主调函数中变量 i 的值发送给了被掉函数,确实也使被掉函数中变量 i 的值变成了99,但是主调函数中变量 i 的值依然是8,并没有发生变化。
那么怎么通过被调函数修改主调函数变量的值呢?这就需要用到指针了。
这个程序的运行结果是:
这个结果可以看出,我们在被掉函数中定义了一个指针变量 p, 主调函数将自己内部的变量 i 的地址发送给被掉函数中的地址变量 p, 在被调函数中 *p 指的是就是主调函数中的变量 i, 这样我们就通过指针改变了主调函数中变量的值。