CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  数据结构与算法

如何实现对二维数组的参数传递

楼主gushaoping(五月)2003-12-04 07:20:32 在 专题开发/技术/项目 / 数据结构与算法 提问

 
          在实际应用中,经常需要把数组作为形式参数  
   
  对一维数组可使用如下形式:  
                                             
                                        void   fun(T     a[]){     }  
   
  在子程序对数组的改变能影响到调用它的数组。二维数组如此   void   fun(T     a[][])就不行,  
    试着以这种形式调用:  
      void   main()                                       void     fun(int   **t)    
                {                                                             {    
                      int   a[2][3];                                       t[0][1]=3;//等等  
                      int   **p;          }  
                      p=a;  
                      fun(p);  
                  }  
  此种调用编译时主程序部分就不能通过,如可行的话,  
   
  则我们可以看到的值为a[0][1]==3;  
   
  请帮助解决  
   
  问题点数:90、回复次数:5Top

1 楼bluesmile979(笑着)回复于 2003-12-04 11:23:57 得分 0

void   main()                                       void     fun(int   *t)    
                {                                                             {    
                      int   a[2][3];                                       t[0][1]=3;//等等  
                      int   *p;          }  
                      p=a;  
                      fun(p);  
                  }  
  Top

2 楼wkqc(被骗没够)回复于 2003-12-04 12:57:42 得分 10

数组是以地址的方式传递给函数参数的,二位数组也是一段连续的存储区域,只需传入首地址即可,int**是指向int型的指针的指针。Top

3 楼gushaoping(五月)回复于 2003-12-05 06:59:13 得分 0

to   wkqc  
   
          你的意思是不是   p   一定要定义成数组指针  
   
          我最终要达到的目的是:void   main(){}函数中定义的a   数组,把它传到子函数fun()中,  
   
  使fun()能影响到a数组,这里想用指针p(是否不行)实现此功能  
   
         
   
  Top

4 楼ZhangYv(迎着朝阳,走向地狱)回复于 2003-12-05 08:51:00 得分 40

void   fun(int   p[][10])  
  {  
  }  
  int   main()  
  {  
      int   a[10][10];  
      fun(a);  
      return   0;  
  }Top

5 楼stephen85()回复于 2003-12-05 09:20:00 得分 40

void   fun(int   **p)  
  {  
   
  }  
   
  void   main  
  {  
        int   **a,i;  
        a=(int   **)malloc(10*sizeof(int   *));  
        for(i=0;i<10;i++)  
              a[i]   =   (int   *)malloc(10*sizeof(int));  
        fun(a);  
  }Top

相关问题

  • 求救二维动态数组做参数传递问题!!!
  • 二维数组作参数传递给函数
  • 请教二维数组的参数传递
  • 二维数组在函数中的参数传递方法?
  • 二维数组作为参数传递的问题..
  • 在函数参数中,如何直接传递二维数组?
  • 如何将一个二维数组作为函数function的参数传递,且二维数组的维数可变?
  • 怎样传递一个二维数组?
  • 怎样传递二维数组?
  • vb中怎么传递二维数组

关键词

  • 指针
  • 数组
  • fun
  • 调用
  • main

得分解答快速导航

  • 帖主:gushaoping
  • wkqc
  • ZhangYv
  • stephen85

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo