首页 > 其他分享 >值类型和引用类型

值类型和引用类型

时间:2023-01-06 21:00:22浏览次数:37  
标签:变量 r1 内存 类型 内存地址 引用

1. 值类型

所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值:

当使用等号 = 将一个变量的值赋值给另一个变量时,如:j = i,实际上是在内存中将 i 的值进行了拷贝:

你可以通过 &i 来获取变量 i 的内存地址,例如:0xf840000040(每次的地址都可能不一样)。

值类型变量的值存储在堆中。

内存地址会根据机器的不同而有所不同,甚至相同的程序在不同的机器上执行后也会有不同的内存地址。因为每台机器可能有不同的存储器布局,并且位置分配也可能不同。

更复杂的数据通常会需要使用多个字,这些数据一般使用引用类型保存。

2.引用类型

一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个字所在的位置。

这个内存地址称之为指针,这个指针实际上也被存在另外的某一个值中。

同一个引用类型的指针指向的多个字可以是在连续的内存地址中(内存布局是连续的),这也是计算效率最高的一种存储形式;也可以将这些字分散存放在内存中,每个字都指示了下一个字所在的内存地址。

当使用赋值语句 r2 = r1 时,只有引用(地址)被复制。

如果 r1 的值被改变了,那么这个值的所有引用都会指向被修改后的内容,在这个例子中,r2 也会受到影响。

标签:变量,r1,内存,类型,内存地址,引用
From: https://www.cnblogs.com/moyu1011/p/17031575.html

相关文章

  • MySQl中的冷门索引类型
    MySQL中的冷门索引类型一、Hash索引概念​基于哈希表实现,只有匹配所有列的查询才有效。对于每一行数据,存储引擎都会对所有索引列计算一个哈希码,哈希码是一个较小的......
  • C#运算符和值类型扫盲
    记录一些方便回顾的知识点。算术运算符加减乘除,取模%,自增自减。注意i++和++i在赋值时的区别,与C语言相同。a=z++;会先将z的值赋给a再自加1的运算。a=++z;会......
  • python 序列类型的操作符
    #_*_coding:utf-8_*_a='abs'printa[0]printa[0:2]printa*4printa+'北京'print'a'inaprint'a'notina#a#ab#absabsabsabs#abs北京#True#False......
  • 第一节:环境准备、项目结构详解、App.vue/main.js/uni.scss详解、各种引用(组件/js/css
    一. 环境准备1. HbuilderX 下载地址:https://www.dcloud.io/hbuilderx.html 2. 微信开发工具 下载地址:https://developers.weixin.qq.com/miniprogram/dev......
  • PostgreSQL数据类型-boolean
    PostgreSQL支持SQL标准的​​boolean​​​数据类型。​​boolean​​只能有"true"(真)或"false"(假)两个状态之一,第三种"unknown"(未知)状态,用NULL表示。真值的有效......
  • Java的四种引用方式
    java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象。java对象的引用包括  强引用,软引用,弱引用,虚引用Java中提供......
  • postman 列表类型传参 ,对象列表传参 格式
     {"examPaperId":"2","myQuestionIds":[1,3,4,5,6,7,18,20,21,22,23,24,25,26], //后台接收List<Integer>类型"myQuestions":[{"questionId":"1","questionPoint......
  • 『中级篇』k8s的NodePort类型Service以及Label的简单实用(68)
    型,clusterIp,这次说下NodePort。源码:​​https://github.com/limingios/docker/tree/master/No.10​​通过pod创建service进入labs目录下的servicecddeployk8s-mastercdla......
  • mybatis使用postgresql中的jsonb数据类型
    最近新开发的一个功能使用到postgresql中的jsonb数据类型。架构师可能考虑到这种数据格式更加便于存储json格式的数据,因此考虑使用这种数据类型。自己以前未曾使用过这......
  • 【Android】无法通过drawable下的selector类型改变背景颜色?
    举例我在darwable目录下创建了selector文件,并设置了如下内容<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/andr......