变量

87 阅读1分钟

变量只能被赋予两种类型的值,基本类型和引用类型

基本类型的值,按值访问,变量的值是谁就取谁,操作谁

引用类型的值,按引用访问,引用类型存的是值是一个内存地址,内存地址指向堆内存的一个具体对象,内存地址不能随便操作,所以访问和操作的是引用的那个堆里的变量

相同点:

  • 不管什么类型,声明变量方式一样
  • 传参,都是按值传递 外部定义的变量在调用函数,当作函数参数传递的时候,相当于是一个外部值给函数内部参数复制的过程

image.png

区别:

  1. 变量存引用类型,可以动态添加属性;基本类型不可以
  2. 变量复制不同:
  •  基本类型,复制一模一样的变量,相互独立,存在栈中;
    

image.png

  •  引用类型,复制了一模一样的内存地址,存在栈中,这个内存地址指向同一个堆变量,一个变化,影响另一
    

个;

image.png