首页 > 其他分享 >1、数组

1、数组

时间:2023-06-28 20:57:35浏览次数:23  
标签:下标 元素 内存空间 地址 数组 array

1、数组是存放在连续内存空间上的相同类型数据的集合;

2、数组可以方便的通过下标索引的方式获取到下标下对应的数据;

3、数组下标都是从0开始的;

4、数组内存空间的地址是连续的;

5、因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址,例如删除下标为3的元素,需要对下标为3的元素后面的所有元素都要做移动操作;

6、如果使用C++的话,要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组;

7、数组的存储空间是连续的,数组的元素是不能删的,只能覆盖,遇到需要移除的元素就将它后面的所有元素向前移动一位;

8、C++二维数组在内存的空间地址是连续的,地址为16进制,可以看出二维数组地址是连续一条线的,0x7ffee4065820 与 0x7ffee4065824 差了一个4,就是4个字节,因为这是一个int型的数组,所以两个相邻数组元素地址差4个字节,0x7ffee4065828 与 0x7ffee406582c 也是差了4个字节,在16进制里8 + 4 = c,c就是12;

1 0x7ffee4065820 0x7ffee4065824 0x7ffee4065828
2 0x7ffee406582c 0x7ffee4065830 0x7ffee4065834
 1 void test_arr() {
 2     int array[2][3] = {
 3         {0, 1, 2},
 4         {3, 4, 5}
 5     };
 6     cout << &array[0][0] << " " << &array[0][1] << " " << &array[0][2] << endl;
 7     cout << &array[1][0] << " " << &array[1][1] << " " << &array[1][2] << endl;
 8 }
 9 
10 int main() {
11     test_arr();
12 }

 

标签:下标,元素,内存空间,地址,数组,array
From: https://www.cnblogs.com/LongYang-Ming/p/17512536.html

相关文章

  • js promise对象数组,使用reduce序列化执行
    自己使用mdn官方例子测试了一下,发现还有一些小问题,调试了一下OK了。consttimeOut=function(ms){ returnnewPromise(function(resolve){ returnsetTimeout(resolve,ms); })}varp1=function(){ returnnewPromise(function(resolve){ console.log(newDate()+'......
  • 二维数组的学习
    二维数组的拷贝这里介绍两种拷贝的方式:1.一种是通过指针的方式进行拷贝,另外一种是通过一维数组的方式进行拷贝。2.copy_arr函数实现的是指针方式的拷贝,copy_arr1实现的是一维数组方式的拷贝。两种拷贝的运行结果一样```////2023/6/28.//#include<stdio.h>#defineROW......
  • JS中数组22种常用API总结,slice、splice、map、reduce、shift、filter、indexOf......
    一、引言在前端开发中,数组是一种常见且重要的数据结构。数组提供了许多便捷的方法来操作和处理其中的数据。本文将简单介绍前端中数组常用的API,包括添加、删除、截取、合并、转换等操作。二、push()方法和pop()方法push()方法用于向数组末尾添加一个或多个元素,并返回修改......
  • 力扣---53. 最大子数组和
    给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。 示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1]的和最大,为 6。示例2:输入:nums=[1]输出:1示例3......
  • 力扣---1186. 删除一次得到子数组最大和
    给你一个整数数组,返回它的某个 非空 子数组(连续元素)在执行一次可选的删除操作后,所能得到的最大元素总和。换句话说,你可以从原数组中选出一个子数组,并可以决定要不要从中删除一个元素(只能删一次哦),(删除后)子数组中至少应当有一个元素,然后该子数组(剩下)的元素总和是所有子数组之中最......
  • 算法:给定 n 个不同元素的数组,设计算法等概率取 m 个不同的元素
      有几种算法可以实现从n个不同元素的数组中等概率地取出m个不同元素,其中一种是Knuth-DurstenfeldShuffle算法,它的思想是:将1到n的数字存到数组中从数组中取一个1到剩下数字个数的随机数k从低位开始,将数组第k个数字取出,并保存到结果数组末尾重复第2步,直到取出m个数字......
  • 数组常用方法(转)
    常用使用原文:https://www.jianshu.com/p/ba4f4637eaad1.join()join(’参数‘)把数组的元素以传入的参数为分割符,转换成字符串。letarr=[1,2,3,4,5];letstr=arr.join(',');console.log(str)//->'1,2,3,4,5';2.push()和pop()push():可以接收任意数量的参数,把它们......
  • 二,多维数组补充
    数组作方法入参 在Java中,可以将数组作为方法的参数传递给方法。这样可以将数组的引用传递给方法,使方法能够直接访问和修改数组的内容。要将数组作为方法的参数传递,需要按照以下步骤进行操作:声明方法时,在方法的参数列表中指定数组的类型和名称。例如,假设我们有一个方法pr......
  • go:数组和切片、可变长参数、maps、字符串、指针、结构体、方法、接口
    目录数组和切片数组切片可变长参数maps字符串指针结构体方法接口数组和切片数组#1定义,初始化,使用#2数组是值类型数字,字符串,布尔,数组,都是值类型,真正直接存数据切片,map,指针引用类型,是个地址,指向了具体的值#3数组长度#4循环打印数组#5多纬数组#......
  • js-关于数组中includes()的使用方法
    关于数组中includes()的使用方法1.includes简单介绍说明 1.includes()方法是用来判断一个数组是否包含一个指定的值,返回一个布尔值,如果是返回true,否则false。2.其中,includes(a,b)括号里第一个参数a为必选参数,表示要查找的某个参数;第二位b为可选参数,表示从某个索引位置开始......