指针与二维数组

1)二维数组是一个特殊的一维数组
2)int a[3][4]这个二维数组里面包含有三个一维数组,每一个一维数组里面又含有四个元素
3)定义一个一维数组a,它里面含有三个元素分别是a[0], a[1], a[2], 而每个元素又是一个含有四个元素的一维数组
4)对于一维数组而言,a[i]就代表一个值,但对于二维数组而言,a[i]本身还是一个数组,a[i]是数组名,所以a[i]依然是一个指针
5)a+i是指向a[i]的而a[i]本身也是一个数组,所以a+i是指向一维数组的指针即行指针,且其移动单位是以数组为单位进行移动的
6)二维数组里面的a[i]是指向元素a[i][0],即a[i]是指向一维数组元素的指针(列指针)而且列指针是以元素为单位进行移动的
7)a,a+1,a+2虽然是行指针,但他们都是常量不能自加,为了能让行指针能够实现移动,就要定义一个行指针变量
8)int(p)[数组长度]
9)如果把指向一维数组的指针赋给为二维数组的数组名的话,那么这个指针就可当成二维数组来使用
int a[3][4],(p)[4]=a;
a[i][j]=p[i][j]=
(
(a+i)+j)=((p+i)+j)
a[0][0]
a–> a[0]-> a[0][1]
a[0][2]
a[0][3]

                     a[1][0]

a+1-> a[1]-> a[1][1]
a[1][2]
a[1][3]

                   a[2][0]

a+2-> a[2]->a[2][1]
a[2][2]
a[2][3]
*a=a[0]
*a[0]=a[0][0]
**a=a[0][0]
**(a+1)=a[1][0]
*(*a+1)=a[0][1]
((a+1)+3)=a[1][3]
((a+i)+j)=a[i][j]


#include<stdio.h>
void main()
{
   
  int a[3][4] = {
    1,2,0,1,1,1,0,2,3,2,0,1 }, k1, k2, k3;
  k1 = **a***a + 1;<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值