当前位置:首页>python>C语言变量和python变量的主要区别

C语言变量和python变量的主要区别

  • 2026-09-02 16:05:30
C语言变量和python变量的主要区别
C语言变量 与python变量的区别
 C语言变量
C是静态类型、编译型语言。
C的变量本质:一块内存盒子。
1. 定义时必须指定数据类型( int 、 float 、 char ),确定这块内存多大、怎么解析二进制。
2. 变量名直接对应内存地址,变量就是内存本身。赋值是把数据拷贝进这块内存。
int a = 10; // 在内存开辟4字节空间,名字a绑定这块内存,存入10a = 20;     // 修改这块内存里面存放的值
3. 类型不能改变, a 永远是int,不能存字符串。
4. 赋值 b = a :值拷贝,把a内存里的数据复制一份给b,a、b是两块独立内存,互不干扰。
Python变量
Python是动态类型、解释型语言。
Python的变量本质:标签/引用(指针),不是盒子。
1. 不需要声明类型;数据对象在堆内存,变量只是贴在对象上的标签。
a = 10   # 10是内存中的整数对象;a只是标签,指向这个对象a = 20   # 不是修改原来10的内存!让标签a改贴到新对象20上
2. 变量可以随时贴到不同类型对象: a=10; a="hello" 完全合法。
3. 赋值 b = a :标签拷贝,不复制数据。a、b两个标签指向同一个对象。修改可变对象会互相影响。
lst1 = [1,2]lst2 = lst1lst2.append(3)print(lst1) # [1,2,3],两者指向同一个列表对象
简明对比表
项目
C 语言变量
Python 变量
本质
内存存储空间(盒子)
指向对象的引用标签
类型
声明确定,静态不变
变量无类型;对象才有类型,标签可换对象
赋值含义
把值复制到变量内存
让变量引用指向另一个对象
b=a
值拷贝,两块独立内存
引用拷贝,共用同一个对象
内存位置
变量本身就占内存
对象在堆;变量存于符号表,保存对象地址
 C:变量=盒子,装数据;赋值改盒子里面的东西。
Python:变量=便利贴,贴对象;赋值只是把便利贴撕下来贴去别的对象。
 易错点:
Python中,数字、字符串是不可变对象,看起来像C的拷贝,只是因为修改时会生成新对象;列表字典是可变对象,引用共享效果会暴露出来。

最新文章

随机文章