zoukankan      html  css  js  c++  java
  • 神秘现象?多种情况比较


    先看以下代码:
     1#include <stdio.h>
     2#include <string.h>
     3
     4
     5
     6int main()
     7{
     8    int N = 0;
     9int subValue = 0,MaxValue = 0;
    10    int iN = 0,jN = 0;
    11        int si,sj;
    12    int i,j;
    13    int ii,jj;
    14    
    15    
    16    int Matrix[100][100];
    17
    18    scanf("%d",&N);
    19    for(iN = 0;iN<N;iN++)
    20    {
    21        for(jN = 0;jN<N;jN++)
    22        {
    23            scanf("%d",&Matrix[iN][jN]);
    24        }

    25    }

    26
    27}
    将断点设在18行后,输入4,检查N的值,居然是:

    改变代码:
    #include <stdio.h>
    #include 
    <string.h>

    int Matrix[100][100];
    int subValue = 0,MaxValue = 0;
        
    int iN = 0,jN = 0;
            
    int si,sj;
        
    int i,j;
        
    int ii,jj;
    int main()
    {
        
    int N = 0;

        
        
        

        scanf(
    "%d",&N);
        
    for(iN = 0;iN<N;iN++)
        
    {
            
    for(jN = 0;jN<N;jN++)
            
    {
                scanf(
    "%d",&Matrix[iN][jN]);
            }

        }

        
    }
    结果居然是:

    而唯一正常的是如下代码:

    即将所有N在函数体外声明便正常了,难道是C语言对函数体内的变量有个数限制?神秘现象解密中...
  • 相关阅读:
    c++11之智能指针
    SurfaceFlinger与Surface概述
    android GUI 流程记录
    文章收藏
    android performance
    POJ3349
    java中的volatile和synchronized
    [原创]分期还款的名义利率与真实利率
    Java IO 流总结
    telegram
  • 原文地址:https://www.cnblogs.com/wqlblogger/p/573246.html
Copyright © 2011-2022 走看看