C语言 改变指针来引用二维数组元素

  1、改变指针来引用二维数组元素

   二维数组在内存中有一个对应的内存地址,只要对这个内存地址加1,就可以指向二维数组的下一行,

   即(二维数组的地址+行号)。

   如果要取出某一列的元素,则可以通过现有的行号再加上1,就可以指向某一行中的下一列的元素,

   即*(*(二维数组的地址+行号)+列号)。

 

   2、例子:

       int  a[ 2 ][ 3 ] ={{4,5,6},{7,8,9}};   

       int (*p)[3] = a;

 

       void main()

       {

        *(*(p+1)+2); 

       }

 

指针 a[2][3] 第1列 第2列 第3列
p  指向 第1行

p+1 指向

第2行
         
         

 

     

 

 

 

 

   例子分析:

    (1)首先,在程序中,我们是定义了一个整形2维数组a并赋值4至9。

    (2)在第二行代码中,我们再定义了一个指针变量p,然后,把2维数组a的第一行的地址赋值给p,

       所以,p就指向数组中的第一行。

    (3)在main函数中,我们使用p+1,同时,当前的p是指向数组中第1行,而加1后就指向第2行

       接着,通过“*”取出第2行的地址,然后,再加2,指向第2行中的第3列的元素地址。

    (4)最后,通过最外层的“*”取出第2行第3列的元素值9。

 

=======================================================================

非常好,现在,我们已经掌握了C语言中的(改变指针来引用二维数组元素)但是,如何去运行用它呢?

所以,我们就需要通过下方的链接,进入到C语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行 编程训练)