本来已经把指针和引用的知识都捋清楚了,但是中午编程遇到了一个传递数组的问题,一下想得多了点,然后又。。。。
被值传递,指针传递,引用传递,地址传递这几个概念弄晕了。看了十来篇博客,什么说法都有。参考课本和菜鸟教程还有一些优秀博客上的观点,加上自己实操,得出下面一些自己对指针传递的理解。
以下是本人粗浅理解,不知是否表述清晰,若有疑问或高见,请在评论区留言指正。
见代码:
见运行结果:
“在习惯上,很多情况下指针和地址这两个术语可以混用” ----摘自《C语言程序设计》蓝皮书
由上面运行结果分析得知:
实质上指针传递传递的是一个地址值,但是到底是说成值传递,还是地址传递,很多博客和网上的答疑中回答不一,但我更倾向于前者,是值的传递。
分析上面的程序:
1.传递的实参是一个地址,即指针;
2.函数中用一个指针变量b接收实参指针;
3.输出 形参指针存的值 和 实参变量的值进行对比,发现是一样的;
4.但是输出 形参指针本身的地址,和