python中变量其实是内存,如a=10,这里的a就是块内存。(c中,变量的本质是门牌号 , 内存别名 )
a = 10 的意思是让a的空间来指向10,即a对应的空间中存的是 存储10的内存的地址
交换ab的值,实际上就是:
让a存储空间去指向 存储20的内存地址
让b存储空间去指向 存储10的内存地址
类似于:
所以不难体会到 python是面向对象的编程,它所有的操作都是对象的引用。
a = 10就是让a对应的内存去保存10这个对象的地址。
个人理解:它似乎没有数据类型
所以,有个梦幻操作:在python中函数也是对象:
def f():
pass
aaa = f
所以这也不难解释,a变量可以等于任何东西,字符串、整型、字典。。。这个变量仅仅是一个引用,它就是个地址,这个地址指向的东西不同也就代表a的东西是不一样的。
c语言构建变量时必须要指明该变量是什么类型,int a = 10 代表找一块内存来存储10,a是该内存空间的别名,此时a空间就只能存储整型,结构类似: