二维数组

1、二维数组传值

一共三种方法可以实现:

  • int   a[5][10];  
       
      函数这样定义:  
       
      void   func(int   (*p)[10])  
      {  
                      ..............               //处理语句,就可以这样使用:p[i][j]  
      }  
       
      这样调用:func(a);
  • 二维数组相当一个指向指针的指针  
      所有,   只要这样就可以了  
      void   fun(int   **p)  
      {  
       
      }
  • 可以对二维数组进行降维处理,看作一维数组,传递数组首地址,并且将数组二维长度传递过去,在函数中要访问a[i][j],即可以通过*(p+i*col+j),其中的col即二维长度。

例子:

在VC中,二维数组t[3][3],把t传给指向指针的指针**G,一般通不过,可以用指向一维数组的指针,该成(*G)[3

#include   <stdio.h>  
  void   print(int   (*p)[3])  
  {  
  int   i,j;  
  for(i=0;i<3;i++)  
      for(j=0;j<3;j++)  
            printf("%d,",*(*(p+i)+j));  
  printf("\n");  
  }  
  void   main()  
  {  
  int   a[3][3]={1,2,3,4,5,6,7,8,9};  
  print(a);  
  }  
待续

posted on 2008-10-21 18:04  oskycar  阅读(370)  评论(0编辑  收藏  举报

导航