CodeMap

慎言笃行

导航

神秘现象?多种情况比较


先看以下代码:
 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语言对函数体内的变量有个数限制?神秘现象解密中...

posted on 2006-11-26 21:37  wqlblogger  阅读(213)  评论(0编辑  收藏  举报