| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 905 人关注过本帖
标题:一个二维数组做参数传递的问题
只看楼主 加入收藏
檀痕哈哈
Rank: 2
等 级:论坛游民
威 望:1
帖 子:12
专家分:10
注 册:2016-10-18
结帖率:100%
收藏
 问题点数:0 回复次数:3 
一个二维数组做参数传递的问题
程序代码:
#include <stdio.h>
int f(int b[][4])
{
    int i,j,s=0;
    for(j=0;j<4;j++)
    {
        i=j;
        if(i>2)
            i=j-3;
        s+=b[i][j];
    }
    return s;
}
int main( )
{
    int a[4][4]={(1,2,3,4),(0,2,4,5),(3,6,9,12),(3,2,1,0)};
    printf("%d\n",f(a));
}

为什么这段代码的输出结果是4
搜索更多相关主题的帖子: 维数 参数 传递 int 代码 
2017-12-12 21:28
檀痕哈哈
Rank: 2
等 级:论坛游民
威 望:1
帖 子:12
专家分:10
注 册:2016-10-18
收藏
得分:0 
发现是自己在初始化数组时把大括号打成了小括号。。。。。
2017-12-12 22:11
新人学习
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:145
专家分:187
注 册:2017-10-26
收藏
得分:0 
对的 输出的是a[0][3]的数字
因为i=j-3;  此时的j的数字是3;
s+=b[i][j] 就相当是s+=b[0][3];
然后
main()
printf("%d\n",f(a));f(a)的返回值就是a[0][3]的值是4.  
2017-12-12 22:15
帅死不偿命
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:30
注 册:2017-10-9
收藏
得分:0 
那个形参是不用带下标
2017-12-13 11:18
快速回复:一个二维数组做参数传递的问题
数据加载中...
 
   



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

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