二维数组问题


1、int *a;   //a为指向一个int型的指针

       int a[3];   //a可以表示数组的指针

2、如何将二维数组用指针表示?

      若存在二维数组int a[3][4];想用指针q来表示

       原以为int   **q   =   a;   是可以的,其实 这样也是有问题的;会出现不能将int[3][4]转换为int **的
       应该是   int   (*p)[3]   =   a;   //将二维数组降为一维数组,o(∩_∩)o...感觉

                       int    (*q)[3]  =   p;

       这样就可以用q来表示这个二维数组了,即使输出printf("%d/n",q[1][2]);也是成立的 
    
       用指针指向二维数组是比较麻烦的事  
   
       若该二维数组的各维数目是固定的话还好办,可以像int   (*p)[3]   =   a;  
 

3、二维数组如何在函数中作为参数传入一个函数?

     例子:void   tt(char   **str)  
              {  .... 
               }  
              void   main()  
              {  
                       char   str[20][20];  
                        tt(str);   
                }  
   
        以上程序编译通不过,如何解决?

        若函数的参数是二维数组,函数原型应该写成这种形式:  
        void   tt(char   a[][20])或者   void   tt(char   (*a)[20])或者降为一维数组来处理。   这样编译就可以通过了
   
 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: