先看以下代码:
1
#include <stdio.h>
2
#include <string.h>
3
4
5
6
int main()
7
{
8
int N = 0;
9
int 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的值,居然是:
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26


27

改变代码:




























而唯一正常的是如下代码:
即将所有N在函数体外声明便正常了,难道是C语言对函数体内的变量有个数限制?神秘现象解密中...