python、java、c++的变量、指针和引用总结

1、c++
c++的变量:存储某类数据的内存单元的名字。
变量的类型就是所存储数据的类型。变量的类型要声明,声明后变量只能存储此类型数据(变量的大小和变量之上的操作就确定了)。对变量来说大小是该内存单元的大小,对数据来说大小是其占用内存的大小。变量也包括类的对象,与基础数据类型是一致的。所以类的建立也相当于自定义一个新的数据类型。
a=b解释:把b内存单元存储的数据赋值给a
a=a+1解释:把a内存单元存储的数据增加1,数据的位置不变

c++的指针:c++的变量是多么好理解,多么好使用,而且是接近底层的。但是,c++仅靠变量就会出现问题。比如函数的参数传递只能是值的传递了。所以引进了指针。指针变量也是变量,只不过是存储的内存地址罢了,但是通过指针变量的传值,就可以间接地进行控制同一内存单元了。

c++的引用:就是别名,就是另起一个名字,建议直接叫别名,别叫引用,不然可能和java混淆。

把c++本身当一个类,基本数据类型变量就是它的成员变量,内置的函数和运算符等就是它的方法。将这种思想延伸出去、、、就是完全面向对象的编程语言比如:java

2、java
java的变量:存储基础数据类型的变量和c++意义完全一致
java的引用:类的对象不会给你对应的变量(内存单元名字)去使用,而是把对象的“引用”给你使用。形式上仍用赋值号。如
Student s1=new Student();这里s不叫变量,而叫引用。引用,引而用之。它是一个使用对象的把手、钩子、名字,当要使用别的对象时,自然可以把把手(钩子)再转移,或是说把名字再给别人用。它和c++的指针非常像(s1=翻译成s1指向,等号不再是传值而是指向),通过s1可以操控这个Student对象。
s1=s2解释:s1引用了s2所引用的对象。
通过引用的使用,我们无法也不用直接和内存单元打交道,这使得语言的抽象层次提高了,还有更多安全性的考量。

3、python
python的变量:python的变量和c++完全不同,也不是一个意思,我更倾向于把它理解成java中的引用。python的所有基本数据类型都是对象。而在python中s1=s2中等号被翻译成引用更为合适:s1引用s2所引用的对象。
当然,需要格外注意的是python的所有基本数据类型都是对象,而又把五种基本数据类型分为可变与不可变的。这导致对于数字、字符数据的引用传递和c++、java中的引用传递不一样,因为数字对象竟然不能变化!也就是说a=3只是a指向了3!这可能让人刚开始有些难受。不过理解了python中根本没有‘变量’,数据都是对象,变量都是引用,之后,一切将变得非常清晰。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值