| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 705 人关注过本帖
标题:二维数组问题
只看楼主 加入收藏
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
结帖率:80%
收藏
 问题点数:0 回复次数:4 
二维数组问题
如何传递二维数组给函数 这个函数如何定义


#include<stdio.h>

void f(int x,void* p);

int _tmain(int argc, _TCHAR* argv[])
{
    char a[3][4]={"aaa","bbb","ccc"};
    f(3,(void*)a);    
    getchar();
    return 0;
}

void f(int x,void* p)
{
    for(int i=0;i<x;i++)
        printf("%s\n",((char(*)[4])p)[i]);//函数如何定义 才能在使用时不用像这样麻烦
}
搜索更多相关主题的帖子: 二维 数组 函数 
2008-10-16 16:45
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1692
专家分:4282
注 册:2007-12-27
收藏
得分:0 
也许是您使用的特种开发环境要求必须这样写代码
2008-10-16 17:11
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
#include<stdio.h>

void f(int x,char* p);

int _tmain(int argc, _TCHAR* argv[])
{
    char a[3][4]={"aaa","bbb","ccc"};
    f(12,&a[0][0]);   
    getchar();
    return 0;
}

void f(int x,char* p)
{
   for(int i=0;i<x;i+=4,p+=4)
    printf("%s\n",p);//函数如何定义 才能在使用时不用像这样麻烦
}
2008-10-16 17:41
xinshou2008
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-10-16
收藏
得分:0 
可以定义一个指向一维数组的指针,即程序可以改为
#include<stdio.h>

void f(int x,char(* p)[4]);

int _tmain(int argc, _TCHAR* argv[])
{
    char a[3][4]={"aaa","bbb","ccc"};
   
    f(3,a);   
    getchar();
    return 0;
}

void f(int x,char(* p)[4])
{ int i;
  for(i=0;i<=(x-1))
  printf("%s\n",*(*(p+i));//输入的是每个字符串的首地址
}
2008-10-16 20:52
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
楼上错误比较多 但好像是正解
void f(int x,char (*p)[4])
{
    int i;
    for(i=0;i<3;i++)
    printf("%s\n",*(p+i));
}

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2008-10-16 21:06
快速回复:二维数组问题
数据加载中...
 
   



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

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