| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:问下参数
只看楼主 加入收藏
编程比卡超
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-7-27
收藏
 问题点数:0 回复次数:3 
问下参数
如果函数的参数是二维数组的话,实参和形参应该怎么写的??
我这样写有什么不对?
void add(int **a)
{
}

main()
{
  int a[1][1];
 add(a);
}
他说我传递参数时有问题啊!应该怎么写??我试了很久都试不到!!
搜索更多相关主题的帖子: 参数 
2007-12-05 00:19
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
形参 和实参 的名字不能是相同的.且你定义的那个数组不能是[1][1].要是这样 就不用定义成二维数组了.
2007-12-05 12:46
mndren
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-11-17
收藏
得分:0 
应该这样写
形参: void add(int a[][5])  或 void add((int *a) [5])      //5代表a指向5个int的指针,也就是说你的数组有多少列元素!

实参:
int main(void)
{
           int a[3][5];
     add(a);                        //直接传递二维数组名,也就是传递了这个数组首元素的地址!
     return 0;
}

这种情况下: a++   移动到下一行    *a++  移动到该行的下一个元素  *a  是a[0][0]的地址  **a  才等于首元素的值!
2007-12-05 15:36
编程比卡超
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-7-27
收藏
得分:0 
那为什么形参不能接受实参传送的二维数组的首地址??

2007-12-05 23:33
快速回复:问下参数
数据加载中...
 
   



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

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