为了账号安全,请及时绑定邮箱和手机立即绑定

学了数组,我有一个很难的问题想问

#include <stdio.h>

int main()

{

   ; //使用第一种方式初始化方式声明并初始化二维数组arr1

    int arr2[2][2];

    arr2[0][0]=1;

    arr2[0][1]=2;

    arr2[1][0]=3;

    arr2[1][1]=4;

    //使用第二种方式初始化方式声明并初始化二维数组arr2

    printf("%d,%d",arr1,arr2);


}

输出结果我试过了,是两个个数字6356736,6356720 。

我想知道为什么会输出这两个数字???

我改变了下名字,数字没变。只改变arr1的值,输出也没变,。然后改变arr1的内存大小int arr1[2][1]={{1},{3}},输出就变了,而且两个数字都变了。

这是为啥?求大佬解释。


正在回答

2 回答

你这样扎别人心,哈哈哈

0 回复 有任何疑惑可以回复我~

首先不是我打击你,你写成这样,报错了没检查吗?

你的return 0;呢? 

你定义arr1了你就输出? 

输出数组不用for循环直接printf?

主函数第一行;分号是什么鬼?

你给这个代码问问题吗?

你输出的是地址,是你电脑内存的地址,。

如果你是问这个题,我会。你要是问地址,我也说不清。

#include <stdio.h>
int main()
{
    //使用第一种方式初始化方式声明并初始化二维数组arr1
    int arr1[2][2]={{10,20},{30,40}};
    //使用第二种方式初始化方式声明并初始化二维数组arr2
    int arr2[2][2];
    arr2[0][0]=10;arr2[0][1]=20;
    arr2[1][0]=30;arr2[1][1]=40;
   
    int i,j;
    for(i=0;i<2;i++)
    {
        for(j=0;j<2;j++)
        {
            printf("%d ",arr1[i][j]);
            if(j==1)
            {
                printf("\n");
            }
        }
    }
    for(i=0;i<2;i++)
    {
        for(j=0;j<2;j++)
        {
            printf("%d ",arr2[i][j]);
            if(j==1)
            {
                printf("\n");
            }
        }
    }
   
   
    return 0;   
}

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926210    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

学了数组,我有一个很难的问题想问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信