首页 > 其他分享 >二维数组

二维数组

时间:2023-10-12 10:22:51浏览次数:29  
标签:第一行 数组名 地址 二维 数组 第一列 指针

1. 二维数组可以用行指针和列指针来表示

行指针 = 数组指针;二维数组名就是第一行的首地址

数组指针加1表示跳过整个指向的数组。

 

2. 数组指针如何访问数组成员空间?

p指向的是数组的地址,也就是&数组名,那么*p就是对取地址后的数组名再*操作,因为&与*为互逆操作,所以此时*p就等同于数组名,所以通过数组指针访问数组成员空间时,只要将数组名替换为*p即可

 

如:int a[3][4] = {{1,2,3,0},{4,5,6,0},{7,8,9,0}}

a就是第一行的地址,所以a+1就是第二行的首地址(数组指针加1相当于跳过的步长为指向数组的长度),行地址还可以用&a[0]来表示第一行的地址;

*a就是第一行第一列的地址,*(a+1)表示第二行第一列的地址(通过普通指针和一维数组类比,a[1] = *(a+1),所以a[1]也表示第二行第一列的地址);

总结:a和&a[0]是第一行的地址,a+1和&a[1]是第一行的地址

     *a和a[0]是第一行第一列的地址,*(a+1)和a[1]是第二行第一列的地址,*(a+1)+1和a[1]+1是第二行第二列的地址

 

注:每一行的行地址和该行的第一列地址是一样的,但是行地址加1和列地址加1所表示的意义不一样

       行地址加1表示跳过一行的长度,即数组指针所指向的数组长度;

  列指针加1表示跳过数组元素的大小,即数组中的下一个元素。

  即行指针是选择二位数组中的哪个数组,列指针是选择该数组中的哪个元素

标签:第一行,数组名,地址,二维,数组,第一列,指针
From: https://www.cnblogs.com/zj-studyrecoding/p/17758869.html

相关文章

  • 树状数组模板
    namespaceBIT{ inttr[/*数据范围qwq*/],N; voidinit(intn){N=n;for(inti=1;i<=n;i++)tr[i]=0;} voidupdate(intx,inty){for(;x<=N;x+=(x&(-x)))tr[x]+=y;} intquery(intx){intres=0;for(;x;x-=(x&(-x......
  • mysql 删除数组 json 字段中的某个指定值
    例:SELECTcar_imgFROMlogistics_car_infoWHEREcar_id=2--结果为:["1","2","3","4"]SELECTJSON_SEARCH(car_img,'one','4')FROMlogistics_car_infoWHEREcar_id=2--结果为:"$[3]"SELE......
  • shell数组
    数组数组定义name=(value0value1value2...)name=($(生成列表的命令))echo"${name[0]}"#输出下标为0的元素ps:数组下标从0开始1)对数组元素进行遍历foriin${name[@]}doecho$idone#在数组中@与*等同2)输出元素的下标echo${!name[@]}3)查看最后一个元......
  • C++ - 数组
    5数组5.1概述所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中的每个==数据元素都是相同的数据类型==特点2:数组是由==连续的内存==位置组成的 5.2一维数组一维数组 5.2.1一维数组定义方式一维数组定义的三种方式:数据类型数组名[数组长度];......
  • 【面试题】JS的14种去重方法,看看你知道多少(包含数组对象去重)
    前言JavaScript数组是一种特殊的对象,用于保存多个值在一个连续的内存空间中,也正是因为如此,我们在数组中存储大量数据,但是巨大的数据量难免会有重复的,但我们并不需要重复的数据,这个时候就需要就数组进行去重,来达到每个数组都是唯一的,这样的数据才是我们想要的。数组中值类型数据去重......
  • 【LC】2875. 无限数组的最短子数组
    Link题意见题链。思路自己没想出来。参考灵神题解取思路。自己写出来的。没有用滑动窗口用了前缀和。代码packagemainfuncminSizeSubarray(a[]int,targetint)int{ n:=len(a) vara2[]int a2=append(a2,a...) a2=append(a2,a...) prefixSums:=make(......
  • 记录python语言的数组去重并输出
    deffind_duplicates(arr):seen=set()duplicates=[]fornuminarr:ifnuminseen:duplicates.append(num)seen.add(num)returnduplicatesarr=['1000223453','1000227458','1000223......
  • day 1 数组 704.二分查找、27.移除元素
    704.二分查找题目链接:704.二分查找视频教程文章教程思路利用middle去寻找target前提条件:这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,二分查找法返回的元素下标可能就不唯一,这些都是二分法的前提,以后看到题目描述后可以先想一想......
  • 【C++ Primer】字符串和数组
    一、命名空间的using声明1、using声明:usingnamespace::name,例如:usingstd::cin。一旦声明了上述语句,就可以直接访问命名空间的变量。每个变量都需要using声明,位于头文件中的代码不应该使用using声明。2、using编译:usingnamespacestd;直接使用整个命名空间。使用using声明比使用us......
  • 数组、对象等常用操作
    1数组常用操作1.1添加元素arr.push()到数组的最后arr.push()从后面添加元素,返回添加后的数组的长度letarr=[1,2,3]//返回新的数组的长度4console.log(arr.push(4))//新的数组为:[1,2,3,4]console.log(arr)1.2添加元素arr.unshift()到数组最前面arr.u......