C语言指针•二维数组中的简单认知

     二维数组本身就是一维数组,并且是连续的地址空间,为了使思路更清晰,采用转换的思想,即二维数组等价于父子数组。(向Mr.陈学习,陈哥YYDS)

 二维数组即父子数组。                                           arr[  ][4 ] = { {1,3,7,8 }  ,  { 2,8,10, 6}    , { 0,0,0,0         }     };

arr是父数组名,即相当于数组指针,arr+1相当于跨过整个数组/整行元素,在OS中一个数(int型时)的内存是4字节,即跨过4n个地址,跨过n个数,跨度大。

arr[ 0 ]是子数组名,arr[0]+1相当于跨过整行元素中的一个元素,跨度小。

 

常见的举例:

   arr[ i][ j] =p[i ] [j ]————偷懒即可。

   arr[ 2 ] =      *( arr+2)

父 arr   arr+1 跨行

子 arr[0]  arr[0]+1 跨单个元素

父—需要借助*符号——子   *( arr+0)+1

 

遍历二维数组:

即子数组的地址和内容

&arr[i]  [j]                  arr[i]  [j]

arr[ i]+j                    *  (   arr[ i]+j   )

 * (arr+i)+j              *  (     * (arr+i)+j           )

二维数组的首地址 是数组名,也是首个元素的地址(首个元素是一个一维数组,OS系统自动取一维数组里的第一个元素的地址)

arr=arr[ 0] =&a[ 0][  0]

 

遍历二维数组的思想

A.二维数组是一维数组,用arr[0][0]逐个单个元素访问二维数组

B二维数组是父子数组,用 数组指针的思想去访问二维数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值