社区
C语言
帖子详情
怎样传递一个二维数组?
Alexeyomux
2001-12-08 07:17:55
有一二维数组int array[9][9]和一函数void fun(int par),现要将数组array
传入fun中去处理。如果借助参数par,则请各位指教:1。如是想用传址使用的方案,参数par应该用怎样的形式;2。如是想用传值使用的方案,参数par的形式又怎样?
我用int** par这样的形式作形参,数组名array做实参,编译器却不认可?为什么?
先谢了!
...全文
213
9
打赏
收藏
怎样传递一个二维数组?
有一二维数组int array[9][9]和一函数void fun(int par),现要将数组array 传入fun中去处理。如果借助参数par,则请各位指教:1。如是想用传址使用的方案,参数par应该用怎样的形式;2。如是想用传值使用的方案,参数par的形式又怎样? 我用int** par这样的形式作形参,数组名array做实参,编译器却不认可?为什么? 先谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Alexeyomux
2001-12-08
打赏
举报
回复
抱歉,分加少了(一开始没注意看到可以给贴子加分,因为是第一次),现在又不能再加了,下次一定加倍感谢。谢谢!
xboy
2001-12-08
打赏
举报
回复
用**p并不能得到二维数组的头指针!
可以用如下方式:
fun (int par[9][9]);
fun (int par[][9]);
fun (int (*par)[9]);
如果一定要用**p那么用new开辟空间好啦:
*p=new int[n];
int arr[n][n];
p=arr;
.
.
.
:
delete []*p;
JiangJiayan
2001-12-08
打赏
举报
回复
据The C Programming Language中的说法:
当向一个函数传递多维数组时,“一般而言,除第一维可以不指定大小外,其余各维都必须明确指定大小”。
对于上例:
1)void fun (int par[9][9]);
或 void fun (int par[][9]);
或 void fun (int (*par)[9]);
都可以(对编译器而言都一样)。
2)由于C对数组的顺序存储特性,实际上可以通过降维来访问原数组。
void fun (int *par);
再通过与楼上相似的方法处理。
eastsun
2001-12-08
打赏
举报
回复
很简单,你先强制转换(先做一个结构,这个结构中包括数组的信息,将这个结构的地址指针强制转换为一个int),在使用的地方,再强制转换回去。
kingfish
2001-12-08
打赏
举报
回复
传地址,行,列
void fun(int *p,int h,int v)
{
int i=3;
int j=2;
*(p+v*i+j)=100; //访问任意一个par[i][j]
}
使用
int par[4][5];
fun(&par[0][0],4,5);
jkjium
2001-12-08
打赏
举报
回复
函数fan的形参这样定义(int **par)就行了。
GZCompiler
2001-12-08
打赏
举报
回复
数组就是保存在内存中的一段数据,作为参数传给函数无非就是想让函数访问这段内存,
传地址吧,最好附上数组的维数。
wyzegg
2001-12-08
打赏
举报
回复
应该传一个指针和两个维数
cBeginner
2001-12-08
打赏
举报
回复
是数组的话,传值和传址的方式是一样的。
void fun(int par[][]) 或者 void fun(int [][])都可以。
VB.NET
二维数组
快速排序(更新)
VB.NET
二维数组
快速排序(更新) 'OldArrays(),为排序
二维数组
;NewArrays(),为存放结果数组,SortColumnsOrOrders(),
传递
排序参数数组,偶数个为排序列号,奇数为升降序,0为升序,1为降序;FieldRow,是否有字段行...
C语言中
二维数组
作为函数参数来
传递
的三种方法
主要给大家介绍了关于C语言中
二维数组
作为函数参数来
传递
的三种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用C语言有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
青少年C++编程NOIP/CSP竞赛通关语法-
二维数组
1、本课程为零基础C++语法专题课,是青少儿参加信息学奥赛NOIP/CSP需要学习的语法专题课; 2、本课程每节课均配有练习题以及真题,以锻炼孩子的解题能力;... 6、本课程介绍的是
二维数组
。也是历来竞赛重要考点。
c#调用c++DLL,dll有
二维数组
c#调用c++DLL,DLL里是
二维数组
,c#里如何调用
二维数组
c语言
二维数组
的
传递
c语言
二维数组
的
传递
,很适合初学者以及对指针有所迷惑的同学。 本程序已经在VC++6.0里面编译通过
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章