函数参数传递二维

tan625747 2009-11-25 09:02:12
a
void a::A([int a[3][3])
{
a[3][3]={{1,1,1},{1,2,3},{2,3,4}}
}
void a::B()
{
A(_?_)//比如在里输出在A初化了的赋值的数组
//这个怎么做呀?
//我用A(a[3][3]);
//这个肯定不正确
}
...全文
88 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jenf 2009-11-26
  • 打赏
  • 举报
回复
a[][3]
第一维可省略,其他维需要传递。
taotaoeta 2009-11-26
  • 打赏
  • 举报
回复
用vector吧。操作比这简单多了
hntoitx 2009-11-25
  • 打赏
  • 举报
回复
void a::A([int a[3][3])
{
a[3][3]={{1,1,1},{1,2,3},{2,3,4}}
}
void a::B()
{
int data[3][3];
A(data); //其实就是传一个指针
}
xue785920414 2009-11-25
  • 打赏
  • 举报
回复
1.template<typename T, in X, int Y>
void foo(T (&a)[X][Y])
{
if(sizeof(a) == sizeof(int[5][6]))
{
for(int x = 0; x < X; ++x)
for(int y = 0; y < Y; ++x)
cout<<a[x][y];
}
}

int main()
{
int a[5][6];
a[1][1] = 2;

foo(a);
}
2.强转为一维数组,寻址方式一样的
我觉得第二种比较好一点!
tan625747 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4楼 leewon1988和 5 楼 aizibion 的回复:]

你们很强大还是谢谢了!

aizibion 2009-11-25
  • 打赏
  • 举报
回复
template <typename T>
void func(T* _head, int _row, int _cow)
{
do....
}
leewon1988 2009-11-25
  • 打赏
  • 举报
回复
其实传递二维数组,有一个好的方法,甚至是3维,多维都可以,那就是用模板如

template<typename T>
void Display(T& a){
for(int i=0;i<10;++i){
for(int j=0;j<10;++j)
cout<<a[i][j];
}
}


但是注意自己控制范围就可以了
stardust20 2009-11-25
  • 打赏
  • 举报
回复
void a::A([int a[3][3])
这边应该是void a::A(int a[3][3])
la_feng 2009-11-25
  • 打赏
  • 举报
回复
A(a);
yunfeng7854 2009-11-25
  • 打赏
  • 举报
回复
直接写A(a)不可以吗?题目没看明白

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧