m0_58852664 2021-06-01 14:07 采纳率: 50%
浏览 29
已采纳

有没有大佬知道为什么a的值变了。。。

#include<stdio.h>
int main()
{
int i,a=5;
printf("a=%d\n",a);
int s[7]={1,3,7,13,16,25,31};

    s[7]=s[6];
    s[6]=s[5];
    s[5]=a;
    printf("a=%d\n",a);
for(i=0;i<8;i++)
printf("%d ",s[i]);
return 0;
}

 

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-06-01 14:10
    关注

    s数组长度是7,所以s[7]越界了,它等于s[6],由于s[6]=31,覆盖了a的存储空间,导致a变成了31

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 ADS生成的微带线为什么是蓝色空心的
  • ¥15 求一下解题思路,完全不懂
  • ¥15 tensorflow
  • ¥15 densenet网络结构中,特征以cat方式复用后是怎么进行误差回传的
  • ¥15 STM32G471芯片spi设置了8位,总是发送16位
  • ¥15 R语言并行计算beta-NTI中tree文件的类型
  • ¥15 如何解读marsbar导出的ROI数据?
  • ¥20 求友友协助弄一下基于STC89C52单片机的声光控制灯原理图
  • ¥15 arduino双向交通灯设计
  • ¥15 有没有会粒子群算法的大能(○゜ε^○)求带不会出收敛图😭