![数组与数组中的一个元素在C语言中都写成比如a[10]这个样子的吗?怎么写得一样的呢?,第1张 数组与数组中的一个元素在C语言中都写成比如a[10]这个样子的吗?怎么写得一样的呢?,第1张](/aiimages/%E6%95%B0%E7%BB%84%E4%B8%8E%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0%E5%9C%A8C%E8%AF%AD%E8%A8%80%E4%B8%AD%E9%83%BD%E5%86%99%E6%88%90%E6%AF%94%E5%A6%82a%5B10%5D%E8%BF%99%E4%B8%AA%E6%A0%B7%E5%AD%90%E7%9A%84%E5%90%97%EF%BC%9F%E6%80%8E%E4%B9%88%E5%86%99%E5%BE%97%E4%B8%80%E6%A0%B7%E7%9A%84%E5%91%A2%EF%BC%9F.png)
a[i]+j 如果数组a定义为一个二维数组,那么a[i]+j 就表示第i行第j列的元素的地址,和上面那个一样,如果数组a是一维数组,那么就表示一个表达式的值
(a+1)=j 数组名表示第一个元素的地址,加1后表示a[0][1]的地址,这句相当于a[0][1]=j;
&a[0][0]+4i+j 这个表示a[i][j]的地址,前提是a的列数为4
a[0]+4i+j 这个表示a[4i+j][0]的地址,因为a[0]表示第一行的地址,递增的单位为一行!D
两个知识点:
1、二维数组的数组名,可以看作类型是指向第二维子数组的指针,比如int a[4][3];a的类型是int ()[3],即指向int [3]数组的指针。
2、p[i]等价于(p+i)。
由这两点可知,int (prt)[3]=a的话,prt和a在使用上就是一样的了。a[1][2]就是ptr[1][2],利用知识点2可知ptr[1][2]=(ptr[1]+2)=((ptr+1)+2)可以用Array中自带的方法:
arrayObjshift( )
shift 方法可移除数组中的第一个元素并返回该元素。
例如:
var ary=[1,2,3,4];
var a=aryshift();//a=1;ary=[2,3,4];
arrayObjslice(start, [end])
slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。
参数:start,截取数组开始下标。end截止的下标,但不包括end元素
例如:
var ary=[1,2,3,4];
var newary=aryslice(0, 2);//newary=[1,2],不包括下标2 所对应的元素3。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)