关于数组指针,指针数组,双重数组,二维矩阵,字符串数组,双重字符指针的理解



1、二维数组

    int array[10][10];
    函数声明: void fun(int a[][10])
    函数调用:fun(array);
   访问: 一般使用a[i][j]来访问数组中的元素

2、指针数组

    int *array[10];
    函数声明:void fun(int *a[10]);
    函数调用:fun(array);
    访问:使用*(a[i]+j)访问数组中的元素

3、指向指针的指针

    int **array;
    函数声明:void fun(int **a);
    函数调用:fun(array);
    访问:*(*(a+i) + j) 或者a[i][j]​访问元素(使用双重指针表示的二维数组的访问方法)


首先你需要明白二维数组名和指针的关系
对于这个二维数组,我们举例为:
1 2 3 4
5 6 7 8
9 10 11 12
因为数组名表示数组的首地址,
<1>所以a表示第一行的首地址
即:a→1 2 3 4
5 6 7 8
9 10 11 12
这时a+1则表示指向第二列的首地址,即
1 2 3 4
a+1→ 5 6 7 8
9 10 11 12
<2>而此时a[0]表示第一行第一列的首地址
a[0]

1 2 3 4
5 6 7 8
9 10 11 12
a[0]+1 表示第一行第二列的首地址

a[0]+1

1 2 3 4
5 6 7 8
9 10 11 12

<3>明白上面的东西你还需要明白**p表示什么意思
float **p, *j, i=100.12;
j=&i;
p=&j;















参考网页:    指针 数组的深入理解 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4979805&uid=20682147

双重指针的合理应用 http://www.jb51.net/article/72226.htmhttp:/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值