二维数组问题

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])或者降为一维数组来处理。   这样编译就可以通过了
   
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值