类型:变量的定义和初始化

变量是什么?

抛开云山雾罩的官腔,变量的本质是什么?

  • 一块或多块用于存储可变数据的内存。
  • 确切的类型决定了内存长度和数据存储格式。
  • 用于引用该内存的符号名。

通过unsafe包提供的指针运算,可以将多个变量指向同一块内存,比如整数可以当做字节序列读出来,但这并不能改变原变量的类型。

变量本身的确是一个相对来说比较抽象的概念,变量首先要引用一块内存,需要存储数据并且可修改数据,那这块内存需要可读可写。

可能不是一块内存而是多块内存,例如基本类型整数是一块内存,引用类型切片哈希可能是多块内存构成的。

内存地址可能不是固定的,例如切片的底层数组、哈希表在扩容的时候可能都会重新分配内存。

C 语言、Go 语言某一块内存可能是固定的,但是 Python 语言一个变量涉及到很多东西,名字是独立的字符串对象。目标对象、名字空间共同构成一个变量。

所以一块或多块用于存储可变数据的内存。

第二变量必须有确切的类型,Go 和 Python 是强类型语言,C 是弱类型的语言。所谓强类型的语言不能把一个变量隐式的转化另外一种类型来使用。C语言是弱类型可以把整数当成浮点型来使用。

通过类型决定需要多长的内存,例如 64 位整数是 8 字节 32 位整数是 4 字节。同时涉及到大小端的问题,例如字节怎么排列的。类型决定了内存长度和数据存储格式,很显然整数和其他类型存储肯定是不一样的。

因为变量的内存是运行期的,我们写代码的时候不知道,所以必须有个符号名字来指代这块内存而不是指代这块内存地址。x = 1x指代这块内存不是说x</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值