随着对大数据的研究越来越火热,python语言的使用越来越广泛,呈现上升趋势,而C语言又是一门历史悠久,同时生命力至今依然旺盛的高级语言,在高校教学中,作为过程语言的C语言通常作为程序设计的入门基础语言,而python作为提升的面向对象程序设计语言,同属于自然语言,了解两者在各方面的异同,有易于理解与记忆
C语言中,若声明变量 int a = 20;则效果 如下图所示,变量由变量名,内存空间和内存空间中保存的变量值三部分构成,变量名是内存空间对应的内存地址(随机写的)的别名,或者说变量名映射到内存空间所对应的内存地址。三者之间可以看出,内存空间是一个盒子,而变量名则是盒子上贴的标签,变量值是盒子中存储的东西。每次对变量的访问都是,通过标签找到盒子,取出盒子中的东西,进行使用。
python语言中,若设置赋值语句 a = 20 则效果也如下图所示 和C语言一样的是,变量名是内存地址的别名,即a代表了地址0x1002; 和C语言不一样的是,Python中的变量和数据分开存储:变量a所代表的地址0x1001处仅保存了数据20存储的内存地址0x1002。 变量a所标示的内存空间存储数据20所在内存地址的过程称为引用。 与上图不同的是,Python的变量一定不能看成是一个盒子
变量类型一旦声明,在整个程序运行过程中,变量的类型不能再改变,变量所分配的空间以及变量能进行的相关操作都是固定的。 例如:int a = 12; a=12.3; 变量a定义为整型,在整个程序过程中类型不能再变,把实型赋值给它,它也只接受整数部分,发生了赋值时的自动类型转换。
由于变量对应的内存空间中存储的是值的地址,因此变量指向的值的类型可以任意变化,也可以理解为python中变量的类型可以随意变化 a = 12 a= (3,4) 前一个瞬间,变量a代表的是整型值,简单类型;后一个瞬间,a表示的是元组,容器类型
C语言中,变量必须先利用类型说明符,先声明后使用,否则会出现语法错误,同时类型一旦确定,程序中将无法再修改。
python语言中,没有特别的变量声明关键字和语句,通常在使用变量时,通常是用赋值语句给变量一个初值,然后再进行使用,而且程序中变量中保存地址所对应值的类型可以不断变化,我们可以理解为变量类型不定。
以上就是今天要讲的内容,其实C语言和python变量的种种不同,起因在于两种语言中,变量与值对应关系的不同,如果大家对C语言很熟悉的话,可以结合C语言中的指针变量来理解python中的变量与值之间的关系,当然,指针变量的局限性在python中却没有。