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

关于数组的小疑问

#include <stdio.h>

int main()

{

    //第一种形式

    int arrFirst[3] = {1,2,3};

    //第二种形式

    int arrSecond[] = {1,2,3};

    //第三种形式

    int arrThird[3];

    arrThird[0]=1;

    arrThird[1]=2;

    arrThird[2]=3;

    //给arrThird数组每个元素初始化

    //输出第一个数组中的第二个元素

    printf("%d\n", arrFirst[1]);

    //输出第二个数组中的第二个元素

    printf("%d\n", arrSecond[1]);

    //输出第三个数组中的第二个元素

    printf("%d\n", arrThird[1]);

    return 0;

}

为什么将划线部分的代码换成 printf("%d\n",arrSecond[22])

输出结果为 4195480


而将代码换成 printf("%d\n",arrSecond[222])

输出结果为 0

呢?


正在回答

5 回答

原来是符号问题

gqjawgxioben

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

一个不确定值。

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

那么输出的这个值是否有一定的规律,或者说计算器优势根据什么输出这个值的。为什么是4195480或者0,而不是1,2,3,4,5.....,是否可以从计算机物理上的计算机制或着其他方面解释。

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

arrSecond[22]指的是arrSecond这个数组中第23个元素,你只初始化了前3个元素,第23个是没有初始化的,输出的当然是内存中的一个不确定指。

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

举报

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

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

进入课程

关于数组的小疑问

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