python学习记录:浅谈python变量与C语言变量的区别

在python中不需要事先声明变量名及其类型,直接赋值即可创建各种类型的变量,虽然不需要在使

用之前显式地声明变量及其类型,但是python仍属于强类型编程语言。

在说python变量与C语言变量的区别之前我们先来看个例子

1、python中

i=t=2048
print(i,id(i))
print(t,id(t))
i=251
print(i,id(i))
# print(t,id(type))
print(t,id(t))

结果如下:

之前有误,改正后:

 

 大家可以先思考一下为什么i和t明明是不同的变量,却共用同一个地址,为什么当i的值改变了,i的地址也跟着变了。

2、C语言中

#include<stdio.h>
int main()
{
	int i,t;
	int *g,*h;
	i=t=10;
	g=&i;
	h=&t;
	printf("%d %d\n",*g,g);
	printf("%d %d\n",*h,h);
	i=12;
	printf("%d %d",*g,g);
	printf("%d %d",*h,h);
}

结果如下:

 

 大家可以很容易的发现,在C语言中i和t的地址是不同的,并且变量的地址并不会随着值的改变而改变。

之所以会有这些区别主要是python关于变量方面的处理和C语言、C++和很大不同。

1、按照C语言和C++的对变量的处理方式都是先声明后定义,要先声明变量的类型,才能根据类型给变量分配地址。

2、而python采用的是基于值的内存管理方式,可以把他当成是C语言的指针去理解,变量相当于一个指针,当被赋值了之后变量就会指向该数据所在的内存地址。而当值改变了之后,指针的指向也发生改变。

 所以我们解释一下上面的例子,在python中,变量i和t被赋上相同的值,这个值在内存中只有一份,多个变量指向同一块内存地址。python中修改变量值的操作,并不是修改了变量的值,而是修改了变量指向的内存地址。而在C语言中,变量在使用之前就分配好了地址不会更改。

python具有自动内存管理功能,会跟踪所有的值,并自动删除不再有变量指向的值。

所以三引号可以被当作注释的原因就是因为python的自动内存管理和三引号的换行属性,三引号本身不是注释符,在一开始还是会为它分配一个地址存放值,但是当没有变量指向它时,python就会自动删除这个值,因此不占内存,不影响程序,可以当成注释。 

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值