| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2797 人关注过本帖
标题:函数返回二维数组问题
只看楼主 加入收藏
新手小疯
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-8-3
结帖率:0
收藏
 问题点数:0 回复次数:8 
函数返回二维数组问题
直接上码 很乱 不要喷我
void fun(int i_get_input)
{
    int a=0,b=0,c=1;
    int i_array_z_index=0;
    int i_array_z[ARR_ROW][ARR_COL]={{0},{0}};
    int i_z_rows=0;
    int i_index_row=0;
    int i_index_col=0;
    int i_row=0;
    int i_col=0;
    int i_temp=0;
   
    for (i_array_z_index = 0, i_z_rows = 0; i_z_rows < i_get_input * 2 - 1; i_z_rows++)
    {
        for (i_index_row = 0; i_index_row < i_get_input; i_index_row++)
        {
            for (i_index_col = 0; i_index_col < i_get_input; i_index_col++)
            {
                if (i_index_row + i_index_col == i_z_rows)
                {
                    i_row = i_index_row ;
                    i_col = i_index_col;
                    
                    if ((i_index_row + i_index_col)%2 == 0)
                    {
                        i_temp = i_row;
                        i_row = i_col;
                        i_col = i_temp;
                    }
                    
                    i_array_z[i_row][i_col] = c++;
                    i_array_z_index++;            
                }
            }
        }
    }        
}

请问 ,我想把 二维数组 i_array_z[i_row][i_col]  返回给 调用这个函数的地方,应该怎么做?
2013-08-09 18:31
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:0 
最简单的方法,把二维数组作为参数传过来,调用的时候就直接传实参。不用返回!

其他方法请看下面

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-09 18:50
h13352825861
Rank: 2
来 自:中国
等 级:论坛游民
威 望:1
帖 子:39
专家分:72
注 册:2013-8-8
收藏
得分:0 
因为你调用和返回的参数都是int型,所以在后面可以直接用return( i_array_z[i_row][i_col])返回!

相信汗水会让未来充满满了阳光!
2013-08-09 18:59
新手小疯
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-8-3
收藏
得分:0 
回复 3楼 h13352825861
可以直接返回数组么?
2013-08-09 19:17
闻木思水
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2013-8-9
收藏
得分:0 
以下是引用liufashuai在2013-8-9 18:50:28的发言:

最简单的方法,把二维数组作为参数传过来,调用的时候就直接传实参。不用返回!

其他方法请看下面


把数组作为参数传进去,其实传进去的是地址,所以你对其的操作会影响这个数组,也就是说对实参进行了修改,不用返回。
或者定义一个全局变量也可以实现。
我想到的就这两种方法。推荐第一种
2013-08-09 21:01
liangyua
Rank: 1
来 自:大连理工大学
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-10
收藏
得分:0 
记得上学期再讲c语言的时候老师句一再强调说要学会用指针做传递,这样的话被调用函数和调用函数的数据就共享了,对了全局数组在静态区是不是很占内存啊?
2013-08-10 08:54
h13352825861
Rank: 2
来 自:中国
等 级:论坛游民
威 望:1
帖 子:39
专家分:72
注 册:2013-8-8
收藏
得分:0 
回复 4楼 新手小疯
可以用数组和指针的方法返回!方便的话把整个程序代码发给我,我帮你修改下!

相信汗水会让未来充满满了阳光!
2013-08-10 09:27
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:0 
其实五楼说的已经很全面了,最好的方法就是不返回

数组 或者  指针   当成函数的   形参    都行

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-10 10:41
新手小疯
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-8-3
收藏
得分:0 
谢谢楼上的几位,我的问题解决了,辛苦你们了不过我不知道怎么结贴 希望BZ给结了
2013-08-15 03:49
快速回复:函数返回二维数组问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034734 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved