python中赋值与c语言区别有哪些

  介绍

小编给大家分享一下python中赋值与c语言区别有哪些,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

<强> python中赋值与c语言区别吗?先来看看简单的Python代码在内存中是什么样子的:

=3   b=b + 5

它在内存中的操作示意图是这样的:

 python中赋值与c语言区别有哪些

然而,从代码的的字面意思上看,“把3赋给b,把b加5之后再赋给b。”

也就是把代码看成这个样子:

b←3   ←b + 5

所以下面这张在内存中的操作图可能更符合我们的直觉:

 python中赋值与c语言区别有哪些

也即b + 5的值又写回到b中。典型的c程序就是这样的。为变量b分配一个int型的内存单元,然后将整数3存放在该内存单元中。b就代表了该块内存空间,不再移动,可以更新b的值,但b在内存中的地址就不再变化了,所以我们说b=b + 5,就等于b←b + 5,把b的值加5之后还依然放入b中。变量b和它所在内存空间紧紧绑定在一起。

而再看看上面python中的内存示意图,b + 5得到了一个新值,然后令b指向了这个新值。换句话说,它做的是事情是这样的:

b→3   b→b + 5

先令b指向3,再令b指向b + 5这个新值。

C程序更新的是内存单元中存放的值,而Python更新的是变量的指向。

C程序中变量保存了一个值,而Python中的变量指向一个值。

如果说C程序是通过操纵内存地址而间接操作数据(每个变量固定对应一个内存地址,所以说操纵变量就是操纵内存地址),数据处于被动地位,那么Python则是直接操纵数据,数据处于主动地位,变量只是作为一种引用关系而存在,而不再拥有存储功能。

在Python中,每一个数据都会占用一个内存空间,如b + 5这个新的数据也占用了一个全新的内存空间。

Python的这种操作让数据成为主体、数据与数据之间直接进行交互。

而数据在Python中被称为对象(对象).

这句话并不太严谨。不过在这个简单的例子中是成立的。

一个整数3是一个int型对象,一个& # 39;你好# 39;是一个字符串对象,一个[1,2,3]是一个列表对象。

Python把一切数据都看成“对象”。它为每一个对象分配一个内存空间。一个对象被创建后,它的id就不再发生变化。

id是身份的缩写。意为“身份;标识”。

在Python中,可以使用id(),来获得一个对象的id,可以看作是该对象在内存中的地址。

一个对象被创建后,它不能被直接销毁。因此,在上个例子中,变量b首先指向了对象3,然后继续执行+ 5 b, b + 5产生了一个新的对象8,由于对象3不能被销毁,则令b指向新的对象,而不是用对象8去覆盖对象3。在代码执行完成后,内存中依然有对象,也有对象8日变量b指向了对象8 .

如果没有变量指向对象3(即无法引用它了),Python会使用垃圾回收算法来决定是否回收它(这是自动的,不需要程序编写者操心)。

一个旧的对象不能被覆盖,因旧的对象交互而新产生的数据会放在新的对象中。也就是说每个对象是一个独立的个体,每个对象都有自己的“主权”。因此,两个对象的交互可以产生一个新的对象,而不会对原对象产生影响。在大型程序中,各个对象之间的交互错综复杂,这种独立性则使得这些交互足够安全。

C程序为每个变量都分配一个了固定的内存地址,这保证了C变量之间的独立性。

C语言是变量(也即内存地址)之间的交互,Python是对象(数据)之间的交互。这是两种不同的交互方式。

看完了这篇文章,相信你对Python中赋值与C语言区别有哪些有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

python中赋值与c语言区别有哪些