| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 480 人关注过本帖
标题:二位数组的指针问题
只看楼主 加入收藏
lccwyj
Rank: 4
等 级:业余侠客
帖 子:71
专家分:203
注 册:2011-5-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:5 
二位数组的指针问题
一个二维数组,用函数指针输出,怎么做?
例如:
main()
{int a[][3]={1,2,3,4,5,6};
f(?);}
void f(int *?);
{……}
怎么填空啊?
搜索更多相关主题的帖子: 二维 
2011-05-21 21:28
查明
Rank: 2
等 级:论坛游民
帖 子:31
专家分:24
注 册:2011-4-12
收藏
得分:5 
#include"stdio.h"

main()
{
    int i = 3, j = 4;
    int m[3][4] = {{1,2,3,4}, {4,5,6,7}, {8,9,10,11}};
    int (*p)[4];
    int f(int *a, int b, int c);

    p = m;

    f( *p, i, j);
    return 0;

}
int f(int *a, int b, int c)
{  
    int x, y;
    for(x = 0; x < b; x++)
    {  
      for(y = 0; y < c;y++ )
      {
        printf("%-3d",*a++);
      }
    printf("\n");
    }

     return 0;
}
/* 输出:
  1  2  3  4
  4  5  6  7
  8  9 10 11
Press any key to continue*/
2011-05-21 23:22
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:5 
回复 2楼 查明
顺便问一下,为什么这样不可以?例如:
void f(int (*p)[2])//改为(*p)[],一般二维数组不用指针不是都可以这样写吗?例如:a[][]
{……}
main()
{int a[][2]={1,2,3,4,5,6};
f(a);
getch();}
2011-05-22 06:25
查明
Rank: 2
等 级:论坛游民
帖 子:31
专家分:24
注 册:2011-4-12
收藏
得分:0 
回复 3楼 hjywyj
谢谢你的问题!!
我想那样是应该可以的 !我把数组的行列那样写
主要是考虑到函数指针在输出时能够更方便
不知道黑侠在函数指针输出时怎样考虑
能否拿出来大家分享一下
2011-05-22 08:52
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
数组的传递也会退化为指针

要是为了方便  直接写 f(int a[][4])

                                         
===========深入<----------------->浅出============
2011-05-22 09:58
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:5 
图片附件: 游客没有浏览图片的权限,请 登录注册


技术问题,请不要以短消息方式提问
2011-05-22 10:00
快速回复:二位数组的指针问题
数据加载中...
 
   



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

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