zoukankan      html  css  js  c++  java
  • 数组越界也可以这么巧~~~

    看这个斐波那契数列,错误来源:wdy

    #include<iostream>
    #include<iomanip>
    using namespace std;
    
    int main(){
        int i,m;
        int a[20];
        m=0;
    
        //cout<<"m = "<<m<<endl;
    
        a[0]=a[1]=1;
        for(i=2;i<=20;i++)//此处越界
            a[i]=a[i-1]+a[i-2];
    
        //cout<<"m     = "<<m<<endl;//m的值竟然变了,怎么貌似一个数呢
        //cout<<"a[20] = "<<a[20]<<endl;//竟然等于a[20]
    
        //cout<<&m<<endl;
        //cout<<&a[20]<<endl;//a[20]竟然就是m
    
        for(i=0;i<20;i++){
            m++;
            cout<<setw(8)<<a[i];
            //cout<<" m = "<<m;
            if(m%5==0)cout<<endl;
        }
    
        return 0;
    }

    结果:

    为什么第一行少一个。。。

    把代码中注释全开:

    都是越界惹得祸,,,a[20]就是m。m的值改变了,所以输出有误。

  • 相关阅读:
    iou与giou对比
    Linux学习第一天 vim
    奖励加分申请
    人月神话阅读笔记3
    5.27
    5.26
    5.25
    5.23
    5.22
    5.21
  • 原文地址:https://www.cnblogs.com/gongpixin/p/4795960.html
Copyright © 2011-2022 走看看