社区
C语言
帖子详情
怎样传递二维数组?
myblind
2003-01-05 02:15:33
函数头 void showGraph(int **G)
Graph函数,要接受一个二维数组
函数里这样使用 G[1][2]
主函数中有 int t[3][3]
我怎样在主函数中给showGraph传递t数组呢?
...全文
2042
23
打赏
收藏
怎样传递二维数组?
函数头 void showGraph(int **G) Graph函数,要接受一个二维数组 函数里这样使用 G[1][2] 主函数中有 int t[3][3] 我怎样在主函数中给showGraph传递t数组呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aLargeSea
2003-01-14
打赏
举报
回复
Bjarne.Stroustrup说:使用vector来代替底层数组
liu_feng_fly
2003-01-10
打赏
举报
回复
用vector<vector<int> >&
langziji
2003-01-10
打赏
举报
回复
showGraph(t);
这样不可以吗?
ttoth
2003-01-10
打赏
举报
回复
用指向指针的指针吗
combojiang
2003-01-10
打赏
举报
回复
向函数传递数组:
1。数组名作函数参数,传递的是二维数组的首地址。
2。数组元素作函数参数,传递的是数组元素的值。
由于二维数组在内存中是线性排列的,传递一维数组和传递二维数组都是传的地址,所以在被调用的函数中用单循环来遍历二维数组中的所有元素,此时只要传递数组名和元素总个数。要注意被传递的数组地址不要用数组名表示,要用第一个元素的地址表示,因为数组名表示的是二维数组的首地址,尽管地址相同,但操作不同。
myblind
2003-01-10
打赏
举报
回复
如果我不知道它的 维数 怎么办?
sboom
2003-01-08
打赏
举报
回复
#include <iostream.h>
void print(int a[3][3])
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<p[i][j])<<endl;
}
void main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
print(a);
} //?????可以的吗?
zrhk
2003-01-08
打赏
举报
回复
或void main()
{
void showGraph(int *G);
int g[3][3];
showGraph(&g[0][0]);
}
void showGraph(int *G)
{
}
zrhk
2003-01-08
打赏
举报
回复
void main()
{
void showGraph(int *G);
int g[3][3];
showGraph(g[0]);
}
void showGraph(int *G)
{
}
boyfling
2003-01-08
打赏
举报
回复
void showGraph(int G[][3])
sunwhite
2003-01-08
打赏
举报
回复
很简单,你就把t作为一个地址,传递给showGraph函数就行了
rafter263
2003-01-08
打赏
举报
回复
#include <stdio.h>
void print(int (*p)[3])
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d", p[i][j]);//这个
printf("\n");
}
void main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
print(a);
}
myblind
2003-01-08
打赏
举报
回复
何办法?
rafter263
2003-01-08
打赏
举报
回复
有!
myblind
2003-01-08
打赏
举报
回复
谢谢 normalnotebook(逐浪踏雪)
不过我还想问,有没有办法这样用:
printf("%d", a[i][j]);
liu_feng_fly
2003-01-06
打赏
举报
回复
应该使用vector代替数组。那样,就不会碰到这样的问题了
normalnotebook
2003-01-06
打赏
举报
回复
在VC中,二维数组t[3][3],把t传给指向指针的指针**G,一般通不过,可以用指向一维数组的指针,该成(*G)[3];
一个例子:
#include <stdio.h>
void print(int (*p)[3])
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d,",*(*(p+i)+j));
printf("\n");
}
void main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
print(a);
}
tiejun
2003-01-06
打赏
举报
回复
把首地址和维数传进去不就行了吧?
Chrisma
2003-01-06
打赏
举报
回复
主函数应该如此定义t:
int *t[3];
才能传过去。关于类型讨论,看华中科技大学的《C++程序设计教程》
非常透册的。此书在运算符重载,成员指针虚函数、异常和模板方面
很有特色。
myblind
2003-01-05
打赏
举报
回复
应该可以在showGraph()用 G[i][j]吧。
VC.net的代码:
int _tmain(int argc, _TCHAR* argv[])
argv就是一个二维数组
比如可以用 argv[0][2],显示一个字符
加载更多回复(3)
c语言
二维数组
的
传递
c语言
二维数组
的
传递
,很适合初学者以及对指针有所迷惑的同学。 本程序已经在VC++6.0里面编译通过
二维数组
的行列互换(函数调用实现)
实现数组的行列互换 形参使用
二维数组
。函数调用使用引用
传递
,比较基础。
动态
二维数组
修改size
动态的创建一个
二维数组
,并通过
传递
参数修改起大小
C语言
二维数组
传参示例
C语言中,
二维数组
的参数
传递
。 例如: char str[5][100]; 如果作为参数
传递
,内有详细示例。 三种传参示例供参考。
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章