从C语言、C++、Java到Python,那些指针在历史进程中的演化
1167 2023-03-30 10:10
1. C语言只有一种参数传递方式,称之为“值传递”,它能自带演化出一种地址传递的能力,但本身还是值传递。
2. C语言不支持引用传递,如下图。
完整代码:
结果:
3. C++的引用传递,本质上就是一个指针常量const *p
运行结果:
4. Java的“共享对象引用”传递
运行结果:
5. Python的可变对象引用传递
结果:
趣味:
java和python都是高级语言,python甚至是脚本语言,人脑将它设计的更接近于人类的任务思维。java更趋向于基础实现的方便。有意思的是,java传字符串参数时,在传进去的瞬间,实参就已经指向了拷贝副本的引用,当然了对于类引用的传递还是遵循共享对象引用传递策略的,python也是在传进函数后有赋值才会改变实参的引用。所以才有了可变对象传入形参能够可变的本领。
全部评论