| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 451 人关注过本帖
标题:大家运行一下下面的代码 结果是多少 我的怎么是18???
只看楼主 加入收藏
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
结帖率:88.46%
收藏
已结贴  问题点数:2 回复次数:10 
大家运行一下下面的代码 结果是多少 我的怎么是18???
程序代码:
#include<stdio.h>
int Arrsum(int (*p)[2])
{
    int i,j,sum=0;
    for(i=0;i<2;i++)
        for(j=0;j<3;j++)
            sum+=p[i][j];
    return sum;
}
main()
{
    int  arr[2][3]={1,2,3,4,5,6};
    printf("%d ",Arrsum(arr));
}
rt
2012-12-25 18:34
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:0 
没分就没人??

喜欢睡觉 却经常熬夜
2012-12-25 18:38
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:1 
我去,随意闲聊区,伙计,禁止发题!
你这也能运行通过?服了

小小战士,战士中的战斗机!
2012-12-25 18:44
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
int Arrsum(int (*p)[2])改成int Arrsum(int (*p)[3])

#include<stdio.h>
int Arrsum(int (*p)[3])
{
    int i,j,sum=0;
    for(i=0;i<2;i++)
        for(j=0;j<3;j++)
            sum+=p[i][j];
    return sum;
}
int main()
{
    int  arr[2][3]={1,2,3,4,5,6};
    printf("%d ",Arrsum(arr));
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册

小小战士,战士中的战斗机!
2012-12-25 18:46
Ayiis
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1086
专家分:3063
注 册:2011-4-10
收藏
得分:0 
对啊

  • 该单位
  • 正在被拖走
2012-12-25 18:49
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:1 
本来是个a[2][3]的数组 但在函数里当成了a[3][2]这样的来处理

a.c:2:5: note: expected 'int (*)[2]' but argument is of type 'int (*)[3]'

gcc直接就提示有问题

不要被二维数组迷惑 二维也好 三维也好 最终都是一维线性的


[ 本帖最后由 zklhp 于 2012-12-25 19:01 编辑 ]
2012-12-25 18:49
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:0 
回复 4楼 小小战士
  瞎了

喜欢睡觉 却经常熬夜
2012-12-25 18:51
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:0 
回复 6楼 zklhp
谢谢z大牛啊

喜欢睡觉 却经常熬夜
2012-12-25 18:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
为啥对于二维数组需要指定一个维的大小呢 因为

对于 int a[M][N]; a[i][j]等价于*(a+i*N+j) 所以必须要知道N

而且 比如这样 int arr[6]={1,2,3,4,5,6}; a[i] 写成 i[a] 也对 原因就是上面说的 道理是一样的 这是C语言的灵活性也是容易出问题的地方 要好好领悟方能不错


2012-12-25 18:59
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:0 
..

喜欢睡觉 却经常熬夜
2012-12-25 19:02
快速回复:大家运行一下下面的代码 结果是多少 我的怎么是18???
数据加载中...
 
   



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

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