24小时热门版块排行榜    

CyRhmU.jpeg
查看: 536  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

Sky_慕泽亚

铁虫 (初入文坛)

[求助] 关于二维数组调用的程序问题已有1人参与

#include <stdio.h>

void f(int (*p)[3])
{
        printf("%d ",p[0][1]);

        printf("%d ",p[2][1]);
}

int main(void)
{
        int a[3][3];

        for(int i=0; i<3;i++)
        {
                for(int j=0;j<3;j++)
                {
                        a[j] = i;
                       
                        i++;
               
                }
        }

        f(a);

        return 0;
}


哪位大神可以帮忙看下,为什么这个程序输出的是随机数而不是赋值的,a[j] = i;如果将i换成数字貌似也不可以
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

自强 弘毅 求是 拓新
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxu2009

至尊木虫 (正式写手)

【答案】应助回帖

你确定不是a[j]=i吗?
3楼2014-10-29 22:16:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

sxu2009

至尊木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
a[j]=i:把i赋值给&a[j][0]?这样能编译通过?你确定不是a[j]=i?
2楼2014-10-29 22:15:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxu2009

至尊木虫 (正式写手)

【答案】应助回帖

我敲的明明是a【i】【j】= i怎么变成a【j】= i了呢?
4楼2014-10-29 22:18:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxu2009

至尊木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
Sky_慕泽亚: 金币+5, 有帮助, 已经帮助解决问题! 2014-10-30 13:01:49
你的程序是这样的吧:
CODE:
#include <stdio.h>
void f(int (*p)[3])
{
         printf("%d ",p[0][1]);
         printf("%d ",p[2][1]);
}
int main(void)
{
         int a[3][3];
         for(int i=0; i<3;i++)
         {
                 for(int j=0;j<3;j++)
                 {
                         a[i][j] = i;                        
                         i++;                 
                 }
         }
         f(a);
         return 0;
}

上述程序中,main函数的循环执行完仅仅对角线的元素赋了值,其余都没有,而数组a又是非静态的局部数组,所以其余元素是随机数。
5楼2014-10-29 22:46:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见