数组理论基础

  1. **数组定义**:
  • 数组是存放在连续内存空间上的相同类型数据的集合。
  1. **数组特性**:
  • 数组下标从0开始。

  • 数组的内存空间地址是连续的。

  1. **数组操作**:
  • 数组可以通过下标索引快速访问元素。

  • 数组元素的删除或添加可能需要移动其他元素,因为内存地址连续。

  1. **数组元素移动示例**:
  • 删除数组中某个元素时,需要移动该元素之后的所有元素。
  1. **C++中数组与vector的区别**:
  • C++中的`vector`底层实现是数组,但`vector`是容器,不是数组。

  • 数组的元素不可删除,只能被覆盖。

  1. **二维数组**:
  • 二维数组在内存中的存储方式,不同编程语言可能不同。
  1. **C++中二维数组的连续性**:
  • C++中二维数组的内存地址是连续的,通过测试代码和内存地址可以验证这一点。
  1. **Java中二维数组的非连续性**:
  • Java不暴露元素的地址给程序员,二维数组的每一行头结点地址没有规则,不连续,寻址操作完全交给虚拟机。
  1. **内存地址理解**:
  • 内存地址以16进制表示,相邻元素地址差代表了数据类型的大小(例如,int型数组相邻元素地址差为4个字节)。
  1. **Java中数组元素地址示例**:
  • Java中打印二维数组的引用地址显示,每行数组的地址是不同的,表明Java中二维数组的行不是连续存储的。
相关推荐
爱读源码的大都督27 分钟前
为什么有了HTTP,还需要gPRC?
java·后端·架构
qq_49244844636 分钟前
Jmeter设置负载阶梯式压测场景(详解教程)
开发语言·python·jmeter
Lucky_Turtle1 小时前
【Java Xml】Apache Commons Digester3解析
xml·java·apache
聪明的笨猪猪1 小时前
Java Redis “缓存设计”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
FIavor.1 小时前
我发送给Apifox是http://localhost:9002/goods/getByUserName?name=张三 为什么会是500哪里错了?
java·服务器·网络协议·http
ID_180079054731 小时前
京东获取整站实时商品详情数据|商品标题|数据分析提取教程
java·开发语言
微露清风2 小时前
系统性学习C++-第五讲-内存管理
java·c++·学习
计算机毕业设计木哥2 小时前
计算机毕业设计选题推荐:基于SpringBoot和Vue的快递物流仓库管理系统【源码+文档+调试】
java·vue.js·spring boot·后端·课程设计
qiuiuiu4132 小时前
正点原子RK3568学习日志-编译第一个驱动程序helloworld
linux·c语言·开发语言·单片机
235162 小时前
【LeetCode】146. LRU 缓存
java·后端·算法·leetcode·链表·缓存·职场和发展