程序员小白浅谈python的变量赋值和c语言的区别

程序员小白浅谈python的变量赋值和c语言的区别

1)python内存空间:有堆和栈两个区间
所有变量在栈里面
数据存在堆里面
变量在栈里面保存的是数据的内存地址

2)python里是先开辟一个堆空间,空间大小跟数据的大小所决定,比如一个字节,就开辟一个字节的空间。
如果有一个变量的值改变,就重新再开辟一个空间,大小也跟数据大小所决定,先前的销毁,所以两个值的内存空间不一样,数据也不会溢出
所以python里原来的值和新赋的值内存空间不一样

3)c语言中,所有东西都放在栈区间,如果需要放在堆区间,要用malloc的方法
4)c语言,定义变量要先声明类型
int a=10
c 存储空间是由类型决定的,类型的大小决定了数据的大小,在有新的值赋值进来,把之前的抹掉。
然后再放新的数据,内存空间与地址是固定的,并且数据可能会溢出

简单来说呢,
就是java和c存储数据就是先根据类型挖坑,再往坑里放数据,有新的数据进来,就把之前的数据抹掉,在把新的数据放进去

python 里是根据数据先挖个坑,再放数据,如果有数据改变,就先根据新数据的大小和类型重新挖个坑,再把新数据放进去
所以说python里变量可以赋值不同类型的变量,并且不会溢出

python里 id可以查看变量的内存地址

a=10
print(hex(id(a)))
a=20
print(hex(id(a)))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值