24小时热门版块排行榜    

CyRhmU.jpeg
查看: 535  |  回复: 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

至尊木虫 (正式写手)

【答案】应助回帖

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

sxu2009

至尊木虫 (正式写手)

【答案】应助回帖

你确定不是a[j]=i吗?
3楼2014-10-29 22:16:37
已阅   回复此楼   关注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的回帖

Sky_慕泽亚

铁虫 (初入文坛)

引用回帖:
5楼: Originally posted by sxu2009 at 2014-10-29 22:46:42
你的程序是这样的吧:

#include <stdio.h>
void f(int (*p))
{
         printf("%d ",p);
         printf("%d ",p);
}
int main(void)
{
         int a;
         for(in ...

程序我在复制的时候错了,对!是a【i】【j】,我只是在测试二重循环中,二维数组是否可以用参数a[j],而不是一定要常数!测试是可以的,感谢帮助!
自强 弘毅 求是 拓新
6楼2014-10-30 13:01:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Sky_慕泽亚

铁虫 (初入文坛)

这次明明打得是a【i】【j】,可是后面又是a【j】了,无语。。。。。
自强 弘毅 求是 拓新
7楼2014-10-30 13:04:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Sky_慕泽亚 的主题更新
信息提示
请填处理意见