C语言 指向二维数组的指针变量

  1、 指向二维数组的指针变量

   二维数组指针就是二维数组的起始内存地址,而指向二维数组的指针变量,就是存放二维数组起始内存地址的指针变量。

 

  2、指向二维数组的指针变量的定义赋值的格式如下:

 

    基类型 (*变量名)[列数] = 二维数组名字;

 

      格式的分析:

      (1)基类型:前面学习变量定义的类型,分别有:整型int,浮点型float,字符型char。

      (2)一对小括号,一定要加上,这样,”*“ 才可以与“变量名”先结合,组成指针变量。

      (3)一对中括号,一定要加上,而中括号里面就要写上列的总数量,同时,这个列的总数量

        一定要与将要指向的那个二维数组的列的总数量一样,不能多,也不能少。

      (4)最后就是一个等号,以及将要被指向的那个二维数组的名字。

 

  3、例子:

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

      int (*p)[3]=a;

 

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

 

     

 

 

 

   例子分析: 

    (1)在这里的指针变量p是一个指向包含3个元素的一维数组的起始地址,为什么会这样呢?

       其实,原因就是,二维数组在内存中是以行为单位存放的,上面的例子中,二维数组a有2行,

       所以,在内存存储时,首先存放第一行中的3个元素,从上面的表格中,

       我们可以看出,4,5,6 这3个值存放在同一行中,

       所以,它就变成了一个1维的数组,然后,指针变量p就指向它的起始地址,

       所以,我们就称指针变量p指向一个包含3个元素的一维数组。

    (2)如果想让p指向二维数组中的下一行,只要让p+1就可以了,因为,p是指向一个一维数组,

       所以,加1就代表着指向下一个的一维数组。这样,就可以指向二维数组中的下一行。

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

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

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

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