网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月12日漏签0天
c++吧 关注:641,898贴子:2,116,811
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 13回复贴,共1页
<<返回c++吧
>0< 加载中...

假期补补落下的c++

  • 只看楼主
  • 收藏

  • 回复
  • 威尔伯的世界
  • throw
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
二维数组怎么传参呢?我在编一个求二维数组的所有元素的和的程序,想问一下求和函数的参数用指针怎么表示?主函数调用时实参怎么写?这个二维数组在main()中定义时赋给了初值a[2][3]={{1,1,1},{2,2,2}}


  • 威尔伯的世界
  • throw
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我把形参设为(int **p,int a,int b),实参写为(a[0],2,3),在求和函数中有这样的语句sum+=p[]


2025-11-12 23:08:50
广告
不感兴趣
开通SVIP免广告
  • 威尔伯的世界
  • throw
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
是sum+=p[i][j]显示这句有错误


  • 威尔伯的世界
  • throw
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看来是没人打算理我了


  • 墨非踽踽独行
  • <
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
被数组值传递弄晕了的路过


  • 敏敏妹妹
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

强制转换成一维指针就行了,其实二维指针也行,不过比一维麻烦


  • yjryym
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
既然是C++,为什么不用模板函数呢?
template <size_t S1, size_t S2>
inline 返回值 函数名(类型 (&arr)[S1][S2])
{
// 其中S1为第一维个数和S2为第二维个数
}
// 调用时:函数名(二维数组);即可,编译器会自动检测出数组大小。


  • hzqst
  • ==
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
传一维指针+宽高
*(int *)(p + y*height +x )


2025-11-12 23:02:50
广告
不感兴趣
开通SVIP免广告
  • hitmanxieyiran
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
"我把形参设为(int **p,int a,int b),实参写为(a[0],2,3),在求和函数中有这样的语句sum+=p[]"
不知道我有没有理解对.你在定义里给形参设置的是二维数组(指针),但是实际传入的a[0]却是一维指针(a[0]实际就是*(a + 0),可以看到已经解引用了一次,由二维指针变成了一维指针),当然不对了.
int GetSum(int **input, int length1, int length2)
{
if(input == NULL || *input == NULL);//invalid argument, do sth..
int sum = 0;
for(int i = 0 ; i < length1 ; i ++) for(int j = 0 ; j < length2 ; j ++)
sum += input[i][j]
return sum;
}
调用时,input处实参应该为你的"a"


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 13回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示