社区
C语言
帖子详情
实参是二位数组,形参如何表示
powerhome
2004-08-06 11:45:19
int Matrix[1000][1000] = {0},实参如何写呢?
如果用new, int (*Matrix)[1000],如何对其初始化为0,我不想用循环,
...全文
340
11
打赏
收藏
实参是二位数组,形参如何表示
int Matrix[1000][1000] = {0},实参如何写呢? 如果用new, int (*Matrix)[1000],如何对其初始化为0,我不想用循环,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wakinhui
2004-11-20
打赏
举报
回复
#define N 4
void rs(int *p)
{ int i,j;
for(i=0;i<N;i++)
for(j=0;j<i;j++)
{ t=*(p+i*N+j);
*(p+i*N+j)=*(p+j*N+i);
*(p+j*N+i)=t;
}
}
void main()
{ int a[N][N],i,j;
输入矩阵a;
rs(&a[0][0]);
输出矩阵a;
}
这样也可以阿!
antijpn
2004-08-06
打赏
举报
回复
另外,传递一个数组的引用也是可以解决问题的,不过这样就要求所有的维度都知道长度,而且还要求是内置的数组类型
antijpn
2004-08-06
打赏
举报
回复
对了,传递参数的时候不能像二楼那样写,必须写成
int[][1000]才行,因为数组作为参数必须给出除了第一维以外其他各个维的大小,否则无法进行定址,如果像二楼所说的传递了int**作为参数,还不知道你到时候按照数组的语法进行使用会产生怎么样的错误呢
antijpn
2004-08-06
打赏
举报
回复
如果初始化为0的话,就可以不用循环,可以使用memset来把所有的字节置0
int *ptr=new int[Len];
memset(ptr,0,Len*sizeof(int));//二维数组把第二维度的长度也要乘进去
kaphoon
2004-08-06
打赏
举报
回复
形参可以用void fun(int**)表示
不是说你初始化要不要循环
而是你要new个2维的,就必须要循环
梦想家大魔王
2004-08-06
打赏
举报
回复
全局变量会自动初始化为0,如果是局部变量,那么多的元素要初始化为0,除了循环我想不出还有别的方便的方法。
elvahuang
2004-08-06
打赏
举报
回复
呵呵
int Matrix[1000][1000]表示数组有1000个元素,每个元素又是1000个元素。
形参必需是int(*)[1000]
不要问为什麽,语言规范!
不用循环 怎麽完成?没试过,好像楼上有方法,不过即使循环又怎样?!晕
antijpn
2004-08-06
打赏
举报
回复
不是因为指针悬空,而是因为无法进行类型转换,如果按照楼上的方法使用动态分配,传递int**是可以的,而且使用上面也不会有问题
qingyuan18
2004-08-06
打赏
举报
回复
int *Matrix [1000]
这样定义是指针数组,用fun(int **)的方法指针已经悬空了。
可以这样:
int *Martrix[1000]
for(int j=0;j<1000;j++)
{
Martrix[j]= malloc(1000*sizeof(int));
memset(Martrix[j],0,1000);
}
antijpn
2004-08-06
打赏
举报
回复
楼上去编译这段代码
void func(int** p)
{
return;
}
void main()
{
int ia[1][1];
func(ia);
}
看看编译器告诉你什么结果
yswift
2004-08-06
打赏
举报
回复
void fun(int**) 没有问题
C/C++中二维
数组
作为
形参
传递参数
本文探讨了如何利用二维
数组
在编程中计算三名同学考试总成绩,并对比了四种不同的
形参
传递方法:二维
数组
、指向
数组
的指针、二级指针和一级指针。方法二的通用性最佳,适合动态数据结构。下期预告将深入讨论内存分配与连续性的影响。
(二维
数组
)(指针)(函数
实参
)(函数
形参
)
文章讨论了如何理解和处理C语言中的一维和二维
数组
以及指针在函数参数中的传递。通过实例解释了如inta[3][5]如何
表示
及如何通过fun(a[1])传递第二行元素,以及对应的
形参
应为int*p。文章强调了理解指针偏移对于正确操作
数组
元素的重要性。
C语言
二位
数组
本文详细解析了在C语言中如何正确使用二维
数组
作为函数参数的方法,包括常见错误及修正方式,阐述了二维
数组
的概念及其作为参数时的正确
表示
形式。
数组
指针、指针
数组
以及
二位
数组
本文详细解析了C++中int*p[3]与int (*p)[3]的区别,前者
表示
指针
数组
,后者
表示
指向一维
数组
的指针。通过示例介绍了如何在函数参数中使用这些类型,并展示了如何优化二维
数组
的处理。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章